Commit Graph

1171 Commits

Author SHA1 Message Date
Kiril Videlov
e9d6d647d0
build: add a .vercelignore to ignore all files in crates 2024-08-27 19:59:18 +02:00
Kiril Videlov
06f50b4531 Merge branch 'master' into branch-stacking-first-stab 2024-08-27 14:13:08 +02: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
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
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
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
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
Kiril Videlov
66257fba2f
rename reference module to change_reference 2024-08-26 19:15:58 +02:00
Kiril Videlov
89d1186b06
refactor this to be a ChangeReference
it turns out that a reference to a change_id is all that we need
2024-08-26 17:02:38 +02:00
Caleb Owens
564cd06666
Merge pull request #4756 from gitbutlerapp/Comments-and-another-enum-correction
Commits and another enum correction
2024-08-26 15:45:45 +02:00
Caleb Owens
f6dae49a8d Commits and another enum correction 2024-08-26 15:40:22 +02:00
Pavel Laptev
99dcf812c4
Add zoom functionality with keyboard shortcuts and update menu actions for the View item (#4753)
* feat: Add zoom functionality with keyboard shortcuts and menu actions

feat: Implement global settings menu action navigation to settings page

feat: Implement theme switching functionality with keyboard shortcut and menu action

* code review fixes
2024-08-26 15:24:44 +02:00
Caleb Owens
3170042895
Merge pull request #4754 from gitbutlerapp/Use-correct-sides
Use the auto-resolution if the head is conflicted
2024-08-26 15:11:08 +02:00
Caleb Owens
ca0ece9d49 Use the auto-resolution if the head is conflicted 2024-08-26 15:05:36 +02:00
Sebastian Thiel
1520a4b7a3
make GPG related spawn failures even clearer (#4750)
This should help self-disagnose probelms aroung GPG not being found.
2024-08-25 09:18:33 +02:00
Kiril Videlov
2ddb032ebf
show relevant commit refs if feature is toggled 2024-08-23 21:03:44 +02:00
Kiril Videlov
33e7d7b269
adds the ability to create branch refs from the UI 2024-08-23 18:07:24 +02:00
Caleb Owens
74a5c1a2ae
Merge pull request #4742 from gitbutlerapp/Exit-edit-mode-without-saving
Exit edit mode without saving
2024-08-23 15:33:53 +02:00
Kiril Videlov
4668a1ec3d
update create and update reference apis
No need to provide the change_id as it can be obtained from the commit itself
2024-08-23 14:32:31 +02:00
Sebastian Thiel
7ee0520ffb
Use latest rev_walk() based API.
It's a bit more intuitive than `id().ancestors()` when coming from `git2`.
2024-08-23 13:08:37 +02:00
Caleb Owens
04a63f1712 Exit edit mode without saving 2024-08-23 12:47:17 +02:00
Nico Domino
d15ccc95f0
fix: add linux dependencies to tauri.conf (#4741) 2024-08-23 11:13:00 +02:00
Kiril Videlov
aea72e8605
update any branch references during cherry rebase 2024-08-23 00:03:58 +02:00
Kiril Videlov
12f826b9ad
move the stacking impl to repo crate
There is just too big of a dependency in both directions to be able to have a separation at this time. The gitbutler-repo crate is needed for the stacking functionality and the `rebase` module inside of it needs to use the new API in order to maintain consistency during rebasing.
2024-08-22 23:29:13 +02:00
Kiril Videlov
9d6508b849
support listing references by commits 2024-08-22 23:21:26 +02:00
Caleb Owens
ec7a38f538
Merge pull request #4717 from gitbutlerapp/Rebase-revolution
Rebase revolution
2024-08-22 18:28:49 +02:00
Caleb Owens
553ca5846f correct lifetime names 2024-08-22 18:16:16 +02:00
Caleb Owens
893b3fc499 Use a default variant on enum 2024-08-22 18:04:11 +02:00
Caleb Owens
c987629262 Add project specific setting and refactor 2024-08-22 17:57:03 +02:00
Caleb Owens
b45a52f111 Remove empty merge commits 2024-08-22 15:27:34 +02:00
Caleb Owens
0603fd7457 Sure up behaviour with blank commits and reordering 2024-08-22 15:15:23 +02:00
Mattias Granlund
8a741bcf2e Delete entry from .toml file when branch is integrated
- virtual_branches.toml file was full of old entries
2024-08-22 13:46:55 +01:00
Nico Domino
0342a46560
fix: invalid CSP syntax (#4739) 2024-08-22 12:26:19 +00:00
Sebastian Thiel
fcafaec2be
process merge-bases in the background
This way, only the first branch has to wait, all further branches will
likely have their merge-base already computed then.
2024-08-21 20:24:22 +02:00
Sebastian Thiel
bdd109047e
use latest gix APIs for more convenience and increased readability. 2024-08-21 19:28:12 +02:00
Sebastian Thiel
e78ef9b115
enable max performance to be competitive in object database access.
This is very relevant for tree-diffing performance, and more could be tuned
here like pack-cache sizes and object cache sizes.
2024-08-21 19:28:12 +02:00
Sebastian Thiel
66c747e611
somewhat fix the ODB performance bottleneck with better caching. 2024-08-21 19:28:12 +02:00
Sebastian Thiel
a2382bde74
Use gix to find branchs and get the local tracking branch 2024-08-21 19:28:12 +02:00
Sebastian Thiel
29ecbff318
Use gix for tree-tree-diff 2024-08-21 19:28:12 +02:00
Sebastian Thiel
0db0f1a86a
Use gix for simple ref-walk that won't go past the merge-base. 2024-08-21 19:28:12 +02:00
Sebastian Thiel
db600b48f9
add benchmark just for revwalking 2024-08-21 19:28:11 +02:00
Sebastian Thiel
42e4ab44f9
Make it more obvious where gitoxide repositories are used. 2024-08-21 19:28:11 +02:00
Sebastian Thiel
7362bab7aa
Assure we can use different merge bases when showing branch details.
Alternatively, correct the assumption that there is a difference.
2024-08-21 19:28:11 +02:00
Sebastian Thiel
07dc9efe02
add tests for get_branch_listing_details() 2024-08-21 19:28:11 +02:00
Sebastian Thiel
e26bf2f54a
add benchmarks for branch details 2024-08-21 19:28:09 +02:00
Sebastian Thiel
7c768acf4d
Add list-all subcommand
This lists all branches that the user would see (and get details for).
2024-08-21 19:23:43 +02:00
Sebastian Thiel
96e0d3e83f
add --trace to enable tracing
This is useful to get simple performance metrics.
2024-08-21 19:23:42 +02:00
Sebastian Thiel
77cbc50a68
branch listing and branch details for the CLI 2024-08-21 19:23:42 +02:00
Sebastian Thiel
d1fdcde139
minor refactor 2024-08-21 19:23:42 +02:00
Sebastian Thiel
84b2db9685
optimize git2 for good measure, and enable them from tauri and cli 2024-08-21 19:23:42 +02:00
Mattias Granlund
acf902c2e6 Fix applied -> in_workspace performance issue
- loop was taking > 1s for me
- my 8 branches (2 in workspace) were constantly being saved
2024-08-21 16:11:26 +01:00
Kiril Videlov
36c0a1219d
add tests 2024-08-21 16:32:20 +02:00
Kiril Videlov
052270f078
adds support for writable scripted fixtures 2024-08-21 16:31:46 +02:00
Caleb Owens
ace6facb24 Getting behaviour locked in 2024-08-21 14:45:41 +02:00
Kiril Videlov
a095f8f28b
add methods for manipulating branch references
fix a thing
2024-08-21 12:21:30 +02:00
Nico Domino
3ce2b5b338
fix: avatars from Google accounts via Auth0 (#4725) 2024-08-21 11:06:52 +02:00
Caleb Owens
4f2a0817c7 Reduce gitbutler_cherry_pick to one code path 2024-08-20 14:51:54 +02:00
Nico Domino
48c1379a45
fix: allow github.com in img-src CSP (#4720) 2024-08-20 12:47:55 +02:00
Caleb Owens
e07b4b2d0d Refactor some code 2024-08-20 10:51:34 +02:00
Caleb Owens
65fb462d64 Rebase revolution
Co-authored-by: Scott <schacon@gmail.com>
2024-08-19 18:10:28 +02:00
Caleb Owens
17d15719ce Update terminology 2024-08-19 13:25:46 +02:00
Caleb Owens
dbe8013de3 Record entering edit mode in oplog 2024-08-19 11:44:59 +02:00
Caleb Owens
7ab7731a31 Add edit mode actions
More edit mode
2024-08-19 11:03:51 +02:00
Caleb Owens
575d8a0492
Merge pull request #4708 from gitbutlerapp/Use-gix-for-cloning
Use gix for cloning repositories
2024-08-19 10:44:44 +02:00
Pavel Laptev
87b5590161 feat(menu): Update the text for 'Check for updates' to include an ellipsis
Just something I noticed about how other applications spell this.
2024-08-17 09:02:00 +01:00
Mattias Granlund
bc10f4985b Add manual check for app update 2024-08-17 09:02:00 +01:00
Nico Domino
cd84afde3e
fix: allow use of xdg-open binary to open links (#4706) 2024-08-16 13:22:06 +00:00
Mattias Granlund
4fe8b6860f Fix branch name deduplication
- do not include name of branch being updated when deduping
2024-08-16 15:16:40 +02:00
Caleb Owens
2316d0f10d Use gix for cloning repositories 2024-08-16 12:21:42 +02:00
Caleb Owens
148ac88434 fix mode undefined 2024-08-15 19:33:25 +02:00
Sebastian Thiel
09f19b782d
There is a clear error if the project moved or was deleted
The user-interface also gets a code to respond to.
2024-08-15 11:23:15 +02:00
Sebastian Thiel
200b6e6d02
Fail when no author was found, and mark the error so the UI can react. 2024-08-15 08:53:19 +02:00
Kiril Videlov
05650b1e96
removes a code path through which an unknown ssh host is added as a known host
This functionality existed for convinience, before the app was able to fork exec to the git binary. Removing this as this trade off is no longer necessary or relevant
2024-08-14 16:26:24 +02:00
Caleb Owens
e0d7b56cb5 Provide current mode to frontend 2024-08-13 17:05:28 +02:00
Caleb Owens
c98421171e Introduce edit mode
asdf
2024-08-13 14:14:02 +02:00
Kiril Videlov
74c8bce48d
add BranchReference type to the Branch persisted struct
This allows (virtual) branches to keep track of associated references
2024-08-10 21:35:40 +02:00
Sebastian Thiel
b92407a5df
branch-listing benchmarks now work again
They type system is more strict now, rejecting an invalid branch name outright.
2024-08-09 21:53:42 +02:00
Sebastian Thiel
107eea6743
Use gix for branch normalization 2024-08-09 21:53:38 +02:00
Kiril Videlov
d635f72269
i dont trust the old Refname implementation
So not using it for deletion here
2024-08-09 15:59:32 +02:00
Kiril Videlov
e295da03a1
adds a delete local branch command
This allows for deleting local branches and any associated virtual branches, so long as they have been unapplied first
2024-08-09 15:29:08 +02:00
Sebastian Thiel
de2989f352
Don't use gix built-in serialization as it will leave BString as sequence of numbers.
Instead, we need it to be a string, even if lossy.
2024-08-09 13:12:36 +02:00
Sebastian Thiel
acbd42fce3
Revert "remove unnecessary BString-related serde functions."
This reverts commit 3043f099b7.

We actually need this - me removing it just means it wasn't properly
documented and clarified in the type-system as to why this is needed.
2024-08-09 10:52:05 +02:00
Sebastian Thiel
4c76e2a6ee
Revert "Revert "Merge pull request #4652 from gitbutlerapp/git2-to-gix""
This reverts commit 88496e6219.
2024-08-09 10:30:52 +02:00
Kiril Videlov
88496e6219 Revert "Merge pull request #4652 from gitbutlerapp/git2-to-gix"
This reverts commit ae8b05ae70, reversing
changes made to 4d9b6a4a93.
2024-08-09 10:18:51 +02:00
Sebastian Thiel
6720e987fe
Use gix::refs::PartialName as even stronger guarantee for what's in there 2024-08-08 21:04:09 +02:00
Sebastian Thiel
712ce582cb
Use BranchIdentity type instead of given_name().
This is a change in perception, as `given_name()` was the name of a virtual-branch,
which is also used to correlate other similarly named branches.

Thus, it's now more than just that, and for lack of a better word it's called
the 'identity' of a branch.

It's something very specific and shouldn't accidentally be used wrongly, hence
the strong typing.
2024-08-08 20:53:15 +02:00
Sebastian Thiel
5376a8b012
Author name uses BString to avoid degeneration 2024-08-08 20:53:14 +02:00
Sebastian Thiel
3df2da6de5
Use gix::remote::Name for type-safety. 2024-08-08 20:53:14 +02:00
Sebastian Thiel
3043f099b7
remove unnecessary BString-related serde functions.
They are supported when the respective bstring feature is used.
2024-08-08 17:25:18 +02:00
Sebastian Thiel
8ed90644a1
refactor serde crate to avoid name duplication 2024-08-08 16:59:38 +02:00
Kiril Videlov
7d629c52b5
derive some useful traits for tagged string and reference name 2024-08-08 14:48:06 +02:00
Caleb Owens
99eac848cf
Merge pull request #4640 from gitbutlerapp/write-tests-for-existing-gitbutler-modes
Write tests for existing modes
2024-08-08 10:54:20 +02:00
Sebastian Thiel
f43f8c1d2b
assure both applications enforce max-performance settings for gitoxide. 2024-08-07 20:21:56 +02:00