Commit Graph

9162 Commits

Author SHA1 Message Date
Sebastian Thiel
a0e236110a
refactor
- move `gix` repository extension to where it belongs more naturally.
- make sure that `get_wd_tree()` is named more closely to what it really
  does, and use it in more places.
2024-08-28 22:05:25 +02:00
Sebastian Thiel
751e091f6f
Reuse the worktree-diff during 'recalulate-everything'
It's used for emission of changed files, but also for listing
branch information.

Make sure we only run the worktree-status once to save time.

This also unifies the acquisition of the `HEAD^{commit}`,
which one day will be a natural feature once `gix::Repository`
is used.
2024-08-28 21:42:29 +02:00
Sebastian Thiel
13deabdebd
find large files more quickly thanks to gix based dirwalk
Also make sure that important `gix` crates are always compiled
with optimization for proper performance.

This is particularly useful when optimizing performance as not
everything has to be done in release mode.

However, it also causes CI to be slower as it compiles some
dependencies longer.

The problem realy is that `tauri dev` doesn't support custom profiles,
so there is only `dev` and `release`.
2024-08-28 21:19:47 +02:00
Sebastian Thiel
7ce143954f
Do not dynamically calculate the head commit when listing virtual branches.
That way, the head is static which allows to re-use the worktree status across
multiple related calls.

Also, add a way to quickly get the `head_commit()` from a `git2::Repository`.

Note that this may cause breakage in the app, as now it will see the actual
head, not a computed one, but that should also help us to find places that
didn't properly update their state.
2024-08-28 21:16:43 +02:00
Caleb Owens
7b5cef41b9
Fix snapshot details transformer 2024-08-28 16:38:21 +02:00
Kiril Videlov
b2cdc37d41
Merge pull request #4779 from Byron/fix-clone
Assure HTTPS support is compiled into `gix` using `curl`.
2024-08-28 13:24:18 +02:00
Sebastian Thiel
41c053474a
Assure HTTPS support is compiled into gix using curl. 2024-08-28 12:55:44 +02:00
Sebastian Thiel
fc63929da3
Add a flag to allow performance logging: GITBUTLER_PERFORMANCE_LOG
````
GITBUTLER_PERFORMANCE_LOG=1 LOG_LEVEL=debug pnpm tauri dev
````

Additionally, some noise was removed by turning a warning into
a trace.
2024-08-28 11:41:29 +02:00
Pavel Laptev
95d11a2965
Fix files selection (#4764)
* allow select multiple if the lane is applied

* missing commit Id added

* fix selection with `shift`

* disable draggable icon for unapplied commits

* replace `isPreview` with existing `isUnapplied`

* do not allow mutliple selection for remote commits

* refactor(utils): small update

* revert previous commit

* review changes
2024-08-28 11:27:48 +02:00
Sebastian Thiel
7e0878a14f
Use read-only worktree diff
The worktree diff is essentially a 'git status' with a given tree,
and that can be expressed with a diff of the workdir, the index and a tree.

This comes at the expense of not being able to control which file sizes are diffed.
2024-08-28 11:10:04 +02:00
Sebastian Thiel
bd2c19db0b
Allow the bench profile to compile faster
There we don't necessarily need every last bit of optimization like
one would want in release profiles, but build performance is of the essence
for developer productivity.
2024-08-28 11:10:04 +02:00
Sebastian Thiel
30cc6a4838
Add branch status to CLI
It calls `list_virtual_branches()` which kind of has the effect of a status call.
2024-08-28 11:10:02 +02:00
Sebastian Thiel
dd724f310d
Also debug-trace information on list_virtual_branches calls.
This can be useful for those who seek extra information, and while it's
dominating refresh times.
2024-08-28 11:09:33 +02:00
Caleb Owens
5a69cd8412
Merge pull request #4776 from gitbutlerapp/have-sidebar-in-edit-mode
Have sidebar in edit mode
2024-08-28 10:52:08 +02:00
Caleb Owens
47358dd7a8
Have sidebar in edit mode 2024-08-28 10:41:47 +02:00
Caleb Owens
25409fd6f9
Merge pull request #4777 from gitbutlerapp/UI-updates-Edit-mode
UI updates: Edit mode
2024-08-28 10:19:40 +02:00
Kiril Videlov
b6c57eedf9
Merge pull request #4745 from Comnir/4472-fix-conflicting-branches-list-message
Fix conflicting-branches list message
2024-08-28 10:09:55 +02:00
Pavel Laptev
cb52363774 Sokitview updates 2024-08-27 23:37:05 +02:00
Kiril Videlov
12d48df0f7
Merge pull request #4774 from gitbutlerapp/remove-unused-feature-flag
remove unused feature flag
2024-08-27 20:57:26 +02:00
Nico Domino
30231c2f46
fix: dont hide "discard file" contextMenu option from binary files (#4770) 2024-08-27 20:50:47 +02:00
Kiril Videlov
74e7b1eeb5
remove unused feature flag 2024-08-27 20:46:22 +02:00
Kiril Videlov
551d78fc36
Merge pull request #4773 from gitbutlerapp/update-vercelignore-include-all
build: add a .vercelignore to ignore all files in crates
2024-08-27 20:42:10 +02:00
Kiril Videlov
e9d6d647d0
build: add a .vercelignore to ignore all files in crates 2024-08-27 19:59:18 +02:00
Caleb Owens
8e3b1bb351
Merge pull request #4769 from gitbutlerapp/Resolve-to-"our"-side
resolve to our side
2024-08-27 18:40:19 +02:00
Nico Domino
a1650b464a
fix: reenable tipsy hover on branch empty-state (#4772) 2024-08-27 15:28:04 +00:00
Mattias Granlund
864994514f
Update app updater button copy (#4762)
* Update app updater button copy

* copy update

---------

Co-authored-by: Pavel Laptev <pawellaptew@gmail.com>
2024-08-27 16:36:28 +02:00
Pavel Laptev
f4594dcfb4 disable hovers for file list items 2024-08-27 14:55:48 +02:00
Kiril Videlov
75805d35d8
Merge pull request #4718 from gitbutlerapp/branch-stacking-first-stab
branch stacking first stab
2024-08-27 14:33:19 +02:00
Kiril Videlov
06f50b4531 Merge branch 'master' into branch-stacking-first-stab 2024-08-27 14:13:08 +02:00
Nico Domino
a9b12f44b0
fix: use ubuntu-22.04 to build app for release (#4767) 2024-08-27 12:11:42 +00:00
Kiril Videlov
b943c35293
code review fixes 2024-08-27 14:05:27 +02:00
Caleb Owens
d386790930
resolve to our side 2024-08-27 14:00:56 +02:00
Caleb Owens
a7399ab083
Merge pull request #4760 from gitbutlerapp/Show-files-in-edit-mode
Show files in edit mode
2024-08-27 13:51:48 +02:00
Caleb Owens
0b397d2368
Jiggle some code about 2024-08-27 13:05:28 +02:00
Caleb Owens
3fb5077c4a
Somethign somethign matchy matchy design 2024-08-27 13:05:27 +02:00
Caleb Owens
d2d3afbf2b
Added unstaged changes event 2024-08-27 13:05:07 +02:00
Sebastian Thiel
7199105561
Merge pull request #4765 from Byron/git2-to-gix
merge-base performance
2024-08-27 12:31:15 +02:00
Sebastian Thiel
06edec70cb
reuse the commit-graph between runs
This time, it contains whole commits and only flags are reset
between runs. With this amount of re-use, it will manage
to rival `git2`.
2024-08-27 12:17:54 +02:00
Sebastian Thiel
c2decbbdc7
Use the latest version of gix for performance improvements. 2024-08-27 12:17:52 +02:00
Nico Domino
e52676c9b3
fix: rm mappings where the target file name is too common (#4766) 2024-08-27 09:57:52 +00:00
Sebastian Thiel
b081a115c8
Offload commit-walk to the commit-thread
That way, it can leverage already held commit-objects, and be faster
in the absence of a commitgraph.
2024-08-27 09:20:07 +02:00
Sebastian Thiel
afcc1ee26e
Merge pull request #4757 from Byron/git2-to-gix
gix merge-base for branch-details
2024-08-27 06:43:16 +02:00
Kiril Videlov
4b5a8d14ef
add commands for pushing change references 2024-08-26 21:38:40 +02:00
Kiril Videlov
cef701796d
update the create reference method to take change id 2024-08-26 20:49:01 +02:00
Caleb Owens
68d4768f12
Merge pull request #4761 from gitbutlerapp/Correct-the-tree-sdie-which-we-write
Correct the tree side which we write
2024-08-26 19:52:24 +02:00
Sebastian Thiel
82aa2d1760
use gix powered merge-base for performance and reduced memory consumption 2024-08-26 19:35:09 +02:00
Caleb Owens
e463e2b2e9 Correct the tree side which we write 2024-08-26 19:34:44 +02:00
Sebastian Thiel
4ad8c0ed11
use latest gix to make merge-base available. 2024-08-26 19:34:21 +02:00
Kiril Videlov
66257fba2f
rename reference module to change_reference 2024-08-26 19:15:58 +02:00
Nico Domino
b287516cc7
feat: use PR template when available (#4736) 2024-08-26 17:08:37 +02:00