Commit Graph

17 Commits

Author SHA1 Message Date
Sebastian Thiel
bb7824e7c0 assure that root-causes are always provided instead of "Something went wrong". (#2886)
In the previous commit it was stated that the 'unfolding' of errors might
have been intentional to surface root causes of error messages.

However, this might have been wrong, and this commit brings back root-causes explicitly,
while erroring on the side of caution. That is, "Something went wrong" probably won't
be shown anymore, instead, possibly too much will be displayed and we'd rather tune
that down once it becomes clear which messages are needed, or should be improved.

Overall, I think it's best to show more, and then tune errors with custom context
where needed.
2024-04-23 11:32:53 +02:00
Sebastian Thiel
b60d49f752 a clear error message when bare repositories are encountered and rejected (#2704)
This also rewrites some other checks in preference of opening the git directory
in isolation. Doing so is very fast, and the only way to know for certain if a
repository is bare.

In future, once the repository is more separated from the worktree (in terms of mindset)
it should be possible to handle bare repos with worktrees as well.
2024-04-22 11:01:07 +02:00
Sebastian Thiel
be4cd36986
clarify some TODOs to avoid keeping them for too long
Note that the comment above 'deltas' merely removed, as it wasn't actionable
without changing the frontend, which can probably already deal with
multiple of these.

Now that types are better understood though, it was straightforward to
change the type of `file_path` to not be a string, which now is even
clearer of a necessity thanks to the `tauri`-independent `watcher` crate.

Also, remove a comment related to the lack of worktree support.
It now fails gracefully, and that will come up again if support should be added.
2024-04-21 11:35:26 +02:00
Kiril Videlov
b8fcddb945
remove unused feature flag function 2024-04-20 10:32:49 +02:00
Kiril Videlov
0c11a0efcb use toml vbranch state by default 2024-04-18 13:12:39 +02:00
Sebastian Thiel
ccbe8fd738
improved error message when worktrees are encountered upon project-add (#3062)
Note that this is a first step towards making worktree support possible.
2024-04-17 18:37:20 +02:00
Kiril Videlov
45361df57c
rm use_diff_context feature flag from project 2024-04-17 07:17:36 +02:00
Sebastian Thiel
e2ef2dc721
Only watch a single project at a time.
Previously it would watch every registered project, which could incur more work
on all parts of the application than necessary.

Now UI sends an event that indicates which project is active, allowing the
watch to be setup in that very moment. It's worth noting that the previously
watched project is automatically deregistered.
2024-04-15 07:19:15 +02:00
Sebastian Thiel
2e969d1507
collect filemonitor events into lists to avoid excessive recomputation.
Previously, each file change both in `.git` as well as in the worktree would
cause a complete recomputation. This computation included opening a git
repository at least once (probaby more often), to make an 'is-ignored' check.

The latter is very expensive in `git2` and gets more expensive the more
files there are.

Now the repository is opened when needed, and we re-use it for all applicable
file paths.
2024-04-15 07:11:16 +02:00
Sebastian Thiel
2eaba14819
dissolve the event queue in favor of method calls
The idea is that we don't parallelize over a channel anymore, but
instead just process filesystem events, one at a time.

This would allow each handler to become a function that gets its
state passed, and makes all the necessary calls verbatim, which
in turn makes it easy to follow what's happening.

If anything becomes to slow due to the serialization of event processing,
selective parallelization can be re-added.
2024-04-15 07:11:09 +02:00
Josh Junon
db519a4eee
only allow systemexecutable on windows 2024-04-11 12:38:02 +02:00
Josh Junon
4d78be2d95
fix clippy lints from toolchain update 2024-04-04 12:37:52 +02:00
Sebastian Thiel
2aaacdfca7
chore: remove legacy error in favor of new error system 2024-04-01 17:33:14 +02:00
Sebastian Thiel
d0db6a67df
use the new 'app' error type everywhere 2024-04-01 16:19:09 +02:00
Kiril Videlov
a57ba4c683 add feature flag for reading vbs from toml 2024-03-31 22:21:04 +02:00
Sebastian Thiel
72291ce4cb
chore: align 'app' and 'lib' crates imports.
This is done one-time (for now) using a nightly feature of cargo-fmt
as defined in `rustfmt-nightly.toml.`

It's planned to make this the default so imports will always be sorted.
For now it can be run manually with:
    cargo +nightly fmt -- --config-path rustfmt-nightly.toml
or
    pnpm rustfmtTBD
 Please enter the message for your patch. Lines starting with
2024-03-30 22:43:16 +01:00
Sebastian Thiel
26c39f2a3f
chore: move library from top-level to gitbutler-core
This better expresses what it does, and leaves the `gitbutler-app`
in the top-level where it can serve as visible entrypoint.
2024-03-30 22:39:21 +01:00