Commit Graph

1351 Commits

Author SHA1 Message Date
Kiril Videlov
99e48e4f3e Initialize the Stack heads for branches during get_applied_status 2024-10-02 22:25:44 +02:00
Kiril Videlov
0ccd6709b6 Implementa helper Stack method for updating latest stack series head 2024-10-02 22:24:42 +02:00
Kiril Videlov
b8f69d9406 Wire up v2 stacking api as Tauri commands 2024-10-02 20:47:50 +02:00
Kiril Videlov
c94e8d121f Update of series name disallowed after push 2024-10-02 20:26:05 +02:00
Kiril Videlov
89960f6bfc Make stack initialization more forgiving 2024-10-02 19:28:29 +02:00
estib
c804699fd1 move commit: Check whether the commit is locked to it's ancestors
If the commit being moved depends on changes made in any of the ancestor commits, raise an error.

Add integration tests for that
2024-10-02 18:57:54 +02:00
Kiril Videlov
f699b72768 Implement support for creating and updating Series description 2024-10-02 18:20:23 +02:00
estib
ef418a20d7 move commit: Prefer rebase
- Prefer rebase than calculating the commit out of the diff
2024-10-02 17:38:51 +02:00
estib
337096a254 move commit: Add tests for multiple commits
- Add tests for moving commits in between branches that have exisiting commits in them
- Assert the contents of the commit and uncommitted files
2024-10-02 12:00:02 +02:00
Kiril Videlov
7d9f440fd6 Fix listing of stack series 2024-10-02 11:40:45 +02:00
Kiril Videlov
03659e4731 Add tests for Stack method push_series 2024-10-02 01:49:12 +02:00
Kiril Videlov
b5325e2d55 Add tests for Stack method update_series 2024-10-02 01:20:37 +02:00
Kiril Videlov
28a6e0a2bf Fixe an issue with Stack.add_series 2024-10-01 23:46:22 +02:00
Kiril Videlov
9ce6dd8635 Rename Stack trait methods to refer to 'series' 2024-10-01 21:51:53 +02:00
Kiril Videlov
4cf5983dfb Stacking: maintain correct order of heads when updating 2024-10-01 18:28:24 +02:00
Kiril Videlov
72e6004f1c Stack: move functions for manipulating heads to own module 2024-10-01 17:41:33 +02:00
Kiril Videlov
00e2b891dd Stacking: Assert no loose commits can be created (outside of a series) 2024-10-01 17:37:26 +02:00
Kiril Videlov
1b953d286c Stacking: enforce that patch references point to changeIDs when available 2024-10-01 17:19:04 +02:00
Kiril Videlov
04c17656bb Stacking: Maintain the correct heads order when adding new ones 2024-10-01 16:12:49 +02:00
estib
876817eaba Factor out the move_commit function
Move the `move_commit` function to a separate module.
Add some unit tests for testing whether the commit is locked.
2024-10-01 13:35:49 +02:00
Kiril Videlov
3ba6f7238a Tests for Stack trait implementation 2024-09-30 00:22:35 +02:00
Kiril Videlov
d0c1679b68 Adds a "list_branches" (series) method to the Stack trait
This pre-computes a list of which commits/patches belong to which series in the stack
2024-09-29 22:18:15 +02:00
Kiril Videlov
f6ec80d8ce Adds a trait Stack with an implementation for Branch
This provides a well defined interface for interacting with Stacks. It is implemented for gitbutler_branch::Branch, and it is specifically meant to operate on and update the `heads` field of Branch
This facilitates creating, updating, removing, pushing and listing of "stacked branches" within the Stack (formerly the virtual branch).
2024-09-29 19:26:39 +02:00
Kiril Videlov
a2aafd919b Introduce PatchReference and a heads field on Branch
- The PatchReference type represents a "reference" that is entirely managed by GitButler. It can either point to a commit or a GitButler change (which itself points to a commit)
- The Branch type (as persisted in virtual_branches.toml) now has a `heads` fields with a list of PatchReferences. This list is not to be meant to be manipulated directly, but with the `Stack` trait
2024-09-28 12:34:29 +02:00
Caleb Owens
a468ec7783 Added the tests 2024-10-01 17:12:46 +02:00
Mattias Granlund
1cdc3b7110 Add patch series to vbranch API struct 2024-10-01 16:09:07 +02:00
Caleb Owens
d571ee2ddb Fix applying mergable branch 2024-10-01 13:32:48 +02:00
Kiril Videlov
3742349a22
Merge pull request #4999 from icorbrey-contrib/master
chore: Bump `git2-hooks`
2024-09-30 19:00:56 +02:00
Caleb Owens
3a921031d3 Remove erroniously preserved dbg statements 2024-09-30 18:08:23 +02:00
Caleb Owens
c7d2bfa025 Support symlinks in create_wd_tree 2024-09-30 18:02:46 +02:00
Isaac Corbrey
7045f1c365 chore: Bump git2-hooks 2024-09-30 11:54:34 -04:00
Caleb Owens
511ca5212e Support executable blobs 2024-09-30 17:34:20 +02:00
Caleb Owens
6d52977202 Remove worktree_path and use workdir function in create_wd_tree 2024-09-30 12:27:34 +02:00
Caleb Owens
e4ecddc690 Extract create_wd_tree test into test directory 2024-09-30 12:26:31 +02:00
Kiril Videlov
9dde8e7f7e
Merge pull request #4995 from gitbutlerapp/Use-new-checkout_combined_trees-in-upstream-integration
Use the new checkout_combined_trees in upstream integration
2024-09-30 11:36:28 +02:00
Caleb Owens
dc45ab2aac Use the new checkout_combined_trees in upstream integration 2024-09-30 02:01:11 +02:00
Caleb Owens
c3f6db382a Add more tests to undo commit 2024-09-30 01:53:21 +02:00
Caleb Owens
87663bea2d Remove instances where add_all was used to get a tree of the current working directory 2024-09-29 23:39:23 +02:00
Caleb Owens
06af1c5fe9 Ensure that the index indeed remains unchanged 2024-09-29 23:23:50 +02:00
Caleb Owens
102b941d3e Use new git2 implementation 2024-09-29 23:18:07 +02:00
Caleb Owens
47a4fc03c7 Update testing framework 2024-09-29 20:23:23 +02:00
Caleb Owens
be1fc2cf7e Checkout trees after reordering (and make generic function for it) 2024-09-28 18:46:41 +02:00
Caleb Owens
947a9c7ff1 Fix branch.tree properties getting set to conflicted trees. 2024-09-28 18:45:11 +02:00
Caleb Owens
7f348d8a6d Add tests for reordering commits 2024-09-28 17:50:32 +02:00
Nico Domino
216fca1cec
fix: simplify crates/package.json setup (#4986) 2024-09-28 15:29:48 +00:00
Nico Domino
8b84f46df1
fix: add crates to pnpm-workspace to avoid Vercel CI (#4855) 2024-09-28 12:19:25 +02:00
Caleb Owens
31242dbe2b Add helper function for matching trees, and start testing rebasing.
Basic rebasing tests
2024-09-26 14:42:14 +02:00
Caleb Owens
46fa53a878 Fix merge commit unconflicted state
more tests
2024-09-25 23:37:37 +02:00
Caleb Owens
9cbebba5cf
Fix testcase for merge_vbranch_upstream_clean_rebase 2024-09-25 15:15:29 +02:00
Caleb Owens
8a84753e92
Merge branch 'master' into Testing-rebase 2024-09-24 20:00:38 +02:00
Caleb Owens
f74f2dcf26 More tests! 2024-09-24 19:52:21 +02:00
Kiril Videlov
86460fb675
Merge pull request #4964 from Byron/commit-with-headers
`gitoxide` for commit with headers
2024-09-24 18:47:29 +02:00
Caleb Owens
bbbf81c4c1 Start to introduce index resolution tests 2024-09-24 17:01:38 +02:00
Sebastian Thiel
0e63323456
remove commit-buffer as it's not needed anymore for dealing with headers. 2024-09-24 15:57:58 +02:00
Sebastian Thiel
fe7d5d92e7
add crate to keep gitoxide conversions to prevent duplication 2024-09-24 15:54:07 +02:00
Caleb Owens
a395dab091 Refactor some of rebase.rs 2024-09-24 13:20:02 +02:00
Sebastian Thiel
d16656816d
Use gix to create signed commits with multiple headers. 2024-09-24 13:02:34 +02:00
Sebastian Thiel
ada4b17c47
Make sure test doesn't fail if the default branch isn't master.
Ideally repository creation is standardized to avoid these issues,
but for now this is just the minimal fix to make the test suite
work for me.
2024-09-24 11:08:10 +02:00
Sebastian Thiel
9f6c01c5ab
make tests work under more conditions
Currently tests rely to be run globally so `branch-actions` can set
the required feature flags.

Now more crates that need it will set it so that their tests can be
run individually.
2024-09-24 11:01:13 +02:00
estib
7dbadb13a9 Get the upstream name from the pushed virtual branch
Once the push of a virtual branch succeeded, return the ref name and the remote name in order to correctly determine which branch name to create a PR from.
2024-09-16 18:15:06 +02:00
estib
184629d1d4 Create a method to find a commit by its ID
Find a commit in the repository by its ID
2024-09-18 16:46:16 +02:00
Nico Domino
992496f6a5
fix: protect read file from path traversal (#4943) 2024-09-22 17:12:45 +00:00
estib
d1c71898cc The edit branch should not be listed in the side bar
The `gitbutler/edit` branch should not be listed in the side bar of the application
2024-09-18 14:28:25 +02:00
Caleb Owens
224c03528b Improve index resolution 2024-09-18 11:45:38 +02:00
Caleb Owens
2a3f0e8a04 Fix (some) wrong files displaying in edit mode 2024-09-17 14:31:58 +02:00
estib
4dca18ff3e fix: Calculate the right file tree when resolving
Get the correct file tree when resolving a conflict
2024-09-18 11:11:00 +02:00
ndom91
ad2290dc7a fix: bump tauri@1.8.0 in preparation for v2 upgrade 2024-09-17 17:10:45 +02:00
Caleb Owens
cc8d3f4810 Did shit good 2024-09-16 16:42:23 +02:00
Caleb Owens
be4652653a Handle merge commits better in edit mdoe 2024-09-13 17:20:13 +02:00
Caleb Owens
d995a04b31 Correct merge commit logic 2024-09-13 12:57:46 +02:00
Caleb Owens
4ff32885e4 Start using new rebasing code when applying branches 2024-09-13 12:34:21 +02:00
Caleb Owens
e626a6f6ba Resolve creation/deletion conflicts 2024-09-13 12:32:01 +02:00
Kiril Videlov
57c3e8b5d2
Merge pull request #4900 from Byron/better-locking
ignore lock-errors on filesystems that lack support
2024-09-16 10:22:51 +02:00
Mattias Granlund
b4f30530b0 Drop unnecessary mapping of error code on push failure
- the removed line would overwrite any previously set code
- unknown is still the default if code is missing
2024-09-16 10:20:14 +02:00
Sebastian Thiel
31626b726b
Edit trees directly when running create_wd_tree() to bypass the index. 2024-09-14 18:48:01 +02:00
Sebastian Thiel
6285d9177e
fix: ignore lock-failures on filesystems that don't support it (#4895)
Just like `cargo` does.
2024-09-14 08:48:17 +02:00
Esteban Vega
1a47f5ec4d
Merge pull request #4850 from gitbutlerapp/ndom91/use-template-dropdown
fix: refactor pr template path input to pre-filled `Select` instead of `TextBox`
2024-09-13 17:25:58 +02:00
Caleb Owens
edd0cbe0e6 Rename unapplying 2024-09-13 16:58:42 +02:00
ndom91
aa91c4ca42 fix: cargo test 2024-09-13 12:25:21 +02:00
ndom91
e8bb66c151 fix: use relativePath and get project basePath on rust side 2024-09-13 12:01:03 +02:00
ndom91
e842b282ae fix: merge conflicts 2024-09-13 11:15:06 +02:00
Caleb Owens
db992dedfa
Merge pull request #4869 from gitbutlerapp/update-api
Update api
2024-09-12 13:23:05 +02:00
Caleb Owens
932070ca1f
Read index 2024-09-12 13:03:04 +02:00
Caleb Owens
1389b9e465
A time before time 2024-09-12 12:46:36 +02:00
Sebastian Thiel
630c253637
for safety, don't fail if the file to be removed doesn't exist.
The code could run into this if `allow_new_file` is `true` and no
file actually exists.
Maybe in practice this can't happen, but calls can be made that trigger this.
2024-09-11 21:39:21 +02:00
Sebastian Thiel
ffdb0f6e2f
Minor refactor for slightly improved readability
Maybe the intent of some parts is clearer now as well.
2024-09-11 21:34:18 +02:00
Kiril Videlov
530a982379
fixes a bug where discarding created files does not work 2024-09-11 21:06:50 +02:00
Kiril Videlov
63a8603054
fixes a bug where discarding deleted files doesnt work 2024-09-11 21:06:34 +02:00
Kiril Videlov
8ad8797b5d
whenever a hunk is reversed also reverse change type 2024-09-11 20:48:09 +02:00
Kiril Videlov
199129162d
on empty new file the generic hunk is type added 2024-09-11 20:47:15 +02:00
Caleb Owens
aeea013ba0
Update base branch button feature flagged 2024-09-11 15:18:20 +02:00
Caleb Owens
6e7aefd5c3
Merge commiting 2024-09-11 14:47:36 +02:00
Caleb Owens
955c99e5d8
Rebasing working 2024-09-11 13:43:39 +02:00
Caleb Owens
191686ec4d
Ahhh, don't loose shit 2024-09-11 11:23:20 +02:00
ndom91
8194283275 fix: simplify error handling read_file_from_workspa 2024-09-10 19:22:03 +02:00
ndom91
b7a037b1dc fix: move new template methods to PRService 2024-09-10 19:18:42 +02:00
ndom91
13c866da73 Merged origin/master into ndom91/use-template-dropdown 2024-09-10 18:56:29 +02:00
ndom91
781fbb5a13 fix: merge conflict 2024-09-10 18:55:45 +02:00
GitButler
e889d90779 GitButler WIP Commit 2024-09-10 18:45:48 +02:00
Kiril Videlov
f93fad98c1
Update gix-path to version 0.10.11 2024-09-10 17:37:10 +02:00