Kiril Videlov
5b39495062
implement GC for branch entries
...
Garbage collects branches that are not in the workspace and hold no changes:
1. They do not have a WIP commit
2. They have no regular commits
2024-10-15 16:21:40 +02:00
Kiril Videlov
a20c2304df
unapply_without_saving
of a (v)branch now also delete persisted state
2024-10-15 15:03:43 +02:00
Kiril Videlov
be24f64c12
Stack - improved automatic reference names
...
Now the template for new references is "branch-n"
2024-10-15 16:40:51 +02:00
estib
44c376e48d
fix: Move any commit from branch to branch
...
Move any commit won't duplicate the commit in both virtual branches.
Also:
- Also add tests to catch this
2024-10-15 14:28:56 +02:00
Kiril Videlov
d168588596
change default stack series reference to match the virtual branch legacy one if set
...
This is only applicable during the migration period - when a virtual branch has been pushed, and therefore there is a reference set. If that is the case, this will make the default series reference match that reference name
2024-10-14 20:49:49 +02:00
Kiril Videlov
e8732f72e2
initialize stack with the same reference as the legacy reference
2024-10-14 16:29:38 +02:00
Caleb Owens
94ff87a72c
Pass --no-verify to git push
2024-10-14 18:27:58 +02:00
Sebastian Thiel
0be8710752
Merge pull request #5111 from Byron/fix-5096
...
Probably fix #5096
2024-10-14 14:03:31 +02:00
Kiril Videlov
3a833261e0
Merge pull request #5121 from gitbutlerapp/handle-undo-commit
...
Stack - handle reorder correctly
2024-10-14 11:27:21 +02:00
Kiril Videlov
6b6fc9b016
Merge pull request #5118 from navtoj/master
...
fix: "The `Shell` module is not enabled"
2024-10-14 11:09:47 +02:00
Esteban Vega
49a88430a2
Merge pull request #5048 from Pranav2612000/feat/4889-allow-moving-any-commit-from-stack-to-lane
...
[#4889 ] feat: allow moving any commit from a stack into another lane
2024-10-14 09:10:23 +02:00
Navtoj Chahal
1e59bb412c
enable opening URLs with the default browser
2024-10-13 19:44:26 -07:00
Kiril Videlov
77a03917e5
Stack - handle reorder correctly
2024-10-14 01:41:24 +02:00
Kiril Videlov
08a00a93b3
stack - replace head on undo commit
2024-10-13 23:59:30 +02:00
Kiril Videlov
ca6f3fd055
remove out of date todo
2024-10-11 22:57:52 +02:00
Kiril Videlov
18286a2142
Stack - adds a method to update the target commit with another in the stack
...
This is useful when a commit is destroyed (uncommit, squash, move)
2024-10-11 22:55:35 +02:00
Sebastian Thiel
d63babff0a
Assure that Project::path
can be compared reasonably with other paths ( #5096 )
...
When testing paths for prefix-matches it's important they are all normalized in
the same fashion.
`canonicalize()` is very particular about canonicalizing Windows paths, which
makes it easy for these paths to not be compatible to other absolute-looking
paths.
The difficulty here is to get the right trade-off between performance and
safety, e.g. we wouldn't want these canonicalized Windows paths to be used
anywhere as they are very uncommon (and don't even work everywhere).
2024-10-11 21:59:51 +02:00
Sebastian Thiel
b58a3f6dc3
Assure tests don't assume the default branch is set to master
globally.
...
Unfortunately, with anything `git2`, it's impossible (or unknown) to
prevent it from picking up the users configuration, hence tests aren't
isolated.
This change alleviates the worst results of this which at least makes
the tests run in my particular setup.
2024-10-11 21:59:48 +02:00
Sebastian Thiel
44a6125c3c
Merge pull request #5100 from Byron/fix-5099
...
fix 5099
2024-10-11 20:53:36 +02:00
Sebastian Thiel
9175e60e60
re-enable now working test thanks to gitoxide
fix
2024-10-11 18:59:38 +02:00
estib
c9f2f479e5
Move commits: Renamings, copy changes and a small fix
...
- Update the variable names so that they convey the right things that we're moving around.
- Correct the thrown error messages
- Append the source commit to the list of commits we're testing against the source commit diffs.
2024-10-11 16:50:49 +02:00
estib
f71187ed05
feat: allow moving any commit from a stack into another lane
...
Rebasing fixes
2024-10-11 15:06:55 +02:00
Mattias Granlund
9499bde372
Ensure stack initialized when re-applying branch
...
- set_stack_head could throw without it
- nolith reported this breakage on discord
2024-10-11 10:53:23 +02:00
Sebastian Thiel
4420f5d6be
Do not allow folders without a .git
directory to be added as project ( #5099 )
2024-10-11 07:53:05 +02:00
Sebastian Thiel
21b463982c
reproduce #5099 , adding a submodule as project fails ( #5099 )
2024-10-11 07:34:36 +02:00
Sebastian Thiel
304f92bf70
Use new 'self-contained' style for integration tests
2024-10-11 07:18:28 +02:00
Esteban Vega
e28a4b697c
Merge pull request #5069 from gitbutlerapp/user-mail-is-optional
2024-10-09 22:50:00 +02:00
Kiril Videlov
bdb8f50ce8
Stack: fixes an issue with displaying upstream commits
2024-10-09 22:38:17 +02:00
Kiril Videlov
f4a935c600
Stack - correctly set the requires_force atribute
...
If any commit from any series has divergence, forceful push is required
2024-10-09 21:13:38 +02:00
Caleb Owens
5071cc40ff
LIst conflicted files in commit files list
2024-10-09 20:21:57 +02:00
Kiril Videlov
3978476b78
Add an extra field remote_commit_id
on the API type VirtualBranchCommit
...
This makes it possibe (and easy) for the UI to determine if there is another (different) commit on the remote for the same patch
2024-10-09 18:15:10 +02:00
estib
8860622ff4
User: Make email optional
...
When authenticating with some IdPs, email doesn't get shared.
In that case, trying to authenticate would just throw a Rust-end error to the users.
This fixes that
2024-10-09 16:43:00 +02:00
Caleb Owens
82b58b6875
Make edit mode fantastic
2024-10-09 15:27:20 +02:00
Kiril Videlov
87a4c61b9f
Consistent setting of stack head updating the series
2024-10-08 22:25:19 +02:00
Kiril Videlov
915acd6afb
Fixes a bug when validating stack target commit
2024-10-08 22:24:34 +02:00
Kiril Videlov
34ca1f4a65
Merge master
into refactor Branch and Stack
2024-10-08 19:40:17 +02:00
Kiril Videlov
cfafc8d7b5
Make all places that create Stack also initialize it
2024-10-08 16:43:42 +02:00
Kiril Videlov
48bbe13d56
Rename StackExt.new to create
2024-10-08 16:37:07 +02:00
Kiril Videlov
570c974544
Rename StackActions to StackExt
...
Closer to rust conventions
2024-10-08 16:32:18 +02:00
Kiril Videlov
f172855c61
Adds a new
method to StackActions
2024-10-08 16:12:21 +02:00
Kiril Videlov
ce9b136185
Rename Stack constructor function to new_uninitialized
...
This describes it more accurately
2024-10-08 16:05:23 +02:00
Kiril Videlov
f6d8bbc663
remove unused type
2024-10-08 16:03:22 +02:00
Kiril Videlov
d05d962cf8
Rename Branch to Stack
2024-10-08 15:59:27 +02:00
Caleb Owens
99145f4aa4
Redo branch upstream integration
2024-10-08 15:49:58 +02:00
Kiril Videlov
9e9f3255a8
Remove some types out of the stack crate
...
Seems i can get away without adding it
2024-10-08 15:44:59 +02:00
Kiril Videlov
7ec59f8489
extract the Branch types to crate gitbutler-stack
2024-10-08 15:27:16 +02:00
Pranav2612000
1bb390a573
refactor: rename check_source_lock_to_ancestors to check_source_lock_to_commits
2024-10-08 18:30:22 +05:30
Kiril Videlov
d78ebbe176
rename crate gitbutler-stack to gitbutler-stack-api
...
This is needed to free up the name gitbutler-stack
2024-10-08 14:53:23 +02:00
Kiril Videlov
5b7109e8ee
refactor(Branch): implement set_head() and make field private
...
This allows us to control the head setting and update the stack `heads` field accordingly
2024-10-08 12:21:57 +02:00
Kiril Videlov
cb2c0d458e
refactor(Branch): implement a head() method
...
Moving the access to head behind a method so that we can eventually migrate to the `heads` field
2024-10-08 12:23:38 +02:00