Caleb Owens
8c01244925
Fix upstream integration when there are no new branches
...
This is important as it will otherwise look like you've got the inverse diff in your uncommited changes.
2024-10-07 11:01:30 +02:00
Kiril Videlov
2b45293aee
Stacking: fix upstream handling
...
- Correctly detect commits that have been pushed
- Return the list of upstream only commits on the list_virtual_branches response
2024-10-04 16:50:15 -07:00
estib
265d957fb3
Base branch: Use graph ahead behind
2024-10-04 18:28:27 +02:00
estib
d8b2bee18c
fix: Lint errors
2024-10-04 10:35:17 +02:00
estib
adf33ac445
Upstream integration: Add some tests related to divergence resolution
...
Add tests regarding resolving divergence of the base branch with upstream
2024-09-30 16:26:19 +02:00
estib
9834627a20
Base: Propagate the conflicting status to the commits
2024-09-25 14:34:10 +02:00
estib
1368d87ed0
Base branch divergence resolution
...
Allow the user to choose how to resolve the base-branch divergence
2024-09-25 14:05:04 +02:00
estib
2091025227
Resolve upstream integration
...
Add a method to determine which should be the new base branch target commit ID based on what resolution approach is selected
2024-09-24 17:16:26 +02:00
estib
9060a4287c
Ability to push the base branch
...
If needed, the base branch can be pushed or force pushed
2024-09-24 14:06:05 +02:00
estib
3a2cf73bcd
BaseBranch: Determine whether the base diverged
...
Determine whether the local target has diverged from the remote,
and return some information about that
2024-09-24 13:57:22 +02:00
Esteban Vega
4d419a5001
Merge pull request #5016 from gitbutlerapp/add-tests-for-moving-commits
...
Factor out the `move_commit` function
2024-10-04 18:34:56 +02:00
Kiril Videlov
d262b230a8
Merge pull request #5036 from gitbutlerapp/add-series-top-base-implementation
...
Stacking - fixes an issue where its not possible to create additional series for the base of the stack
2024-10-04 00:29:26 +02:00
Kiril Videlov
d15e41ee73
Stacking - fixes an issue where its not possible to create additional series for the base of the stack
2024-10-03 15:22:20 -07:00
Kiril Videlov
eb88ed01c6
Stack api: Dont try to push series that are pointing to the Stack base
2024-10-03 20:52:27 +02:00
Kiril Videlov
ef1c7c139d
Simplify CreateSeriesRequest
...
If `preceding_head` is provided, only the name of the series is sufficient
2024-10-03 20:12:49 +02:00
Kiril Videlov
efa5cbc7fd
Makes it easier to create new series to the top of the stack
...
Adds an extra convinience API that does not require knowledge of what is the latest commit
2024-10-03 20:04:20 +02:00
Kiril Videlov
7ab8fdf0b8
Merge pull request #5031 from gitbutlerapp/series-on-list-virtual-branches-order
...
Fixes the order of series on the UI API (list_virtual_branches)
2024-10-03 18:56:36 +02:00
Kiril Videlov
cd4ec147b1
Fixes the order of series on the UI API (list_virtual_branches)
...
The UI needs the list starting with newest first.
Updated docs.
2024-10-03 18:50:56 +02:00
Kiril Videlov
e63e876ca5
Refactor - removes the change_refernce module that what the initial imlementation of stacking
...
This is now replaced with the more capable and correct `Stack` trait, implemented on `Branch`.
The new endpoints are:
create_series,
remove_series,
update_series_name,
update_series_description,
push_stack,
2024-10-03 18:39:50 +02:00
Kiril Videlov
3fc1687f86
Merge pull request #5027 from gitbutlerapp/reverse-patches-in-stack-series
2024-10-03 07:22:34 +02:00
Kiril Videlov
9c9c0fe5aa
fix: list_virtual_branches series patch order should be newest to oldest
2024-10-03 06:16:03 +02:00
Kiril Videlov
d8c00133aa
fix: Replace log range with merge base in Stack trait
2024-10-03 06:01:35 +02:00
dependabot[bot]
69752599be
Bump the rust-updates group across 1 directory with 13 updates
...
Bumps the rust-updates group with 13 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [serde](https://github.com/serde-rs/serde ) | `1.0.209` | `1.0.210` |
| [thiserror](https://github.com/dtolnay/thiserror ) | `1.0.63` | `1.0.64` |
| [backtrace](https://github.com/rust-lang/backtrace-rs ) | `0.3.73` | `0.3.74` |
| [once_cell](https://github.com/matklad/once_cell ) | `1.19.0` | `1.20.1` |
| [reqwest](https://github.com/seanmonstar/reqwest ) | `0.12.7` | `0.12.8` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.127` | `1.0.128` |
| [pretty_assertions](https://github.com/rust-pretty-assertions/rust-pretty-assertions ) | `1.4.0` | `1.4.1` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.12.0` | `3.13.0` |
| [tauri-build](https://github.com/tauri-apps/tauri ) | `1.5.4` | `1.5.5` |
| [tokio-util](https://github.com/tokio-rs/tokio ) | `0.7.11` | `0.7.12` |
| [rstest](https://github.com/la10736/rstest ) | `0.22.0` | `0.23.0` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.16` | `4.5.19` |
| [regex](https://github.com/rust-lang/regex ) | `1.10.6` | `1.11.0` |
Updates `serde` from 1.0.209 to 1.0.210
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.209...v1.0.210 )
Updates `thiserror` from 1.0.63 to 1.0.64
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.63...1.0.64 )
Updates `backtrace` from 0.3.73 to 0.3.74
- [Release notes](https://github.com/rust-lang/backtrace-rs/releases )
- [Commits](https://github.com/rust-lang/backtrace-rs/compare/0.3.73...0.3.74 )
Updates `once_cell` from 1.19.0 to 1.20.1
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.19.0...v1.20.1 )
Updates `reqwest` from 0.12.7 to 0.12.8
- [Release notes](https://github.com/seanmonstar/reqwest/releases )
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.12.7...v0.12.8 )
Updates `serde_json` from 1.0.127 to 1.0.128
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/1.0.127...1.0.128 )
Updates `pretty_assertions` from 1.4.0 to 1.4.1
- [Release notes](https://github.com/rust-pretty-assertions/rust-pretty-assertions/releases )
- [Changelog](https://github.com/rust-pretty-assertions/rust-pretty-assertions/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-pretty-assertions/rust-pretty-assertions/compare/v1.4.0...v1.4.1 )
Updates `tempfile` from 3.12.0 to 3.13.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.12.0...v3.13.0 )
Updates `tauri-build` from 1.5.4 to 1.5.5
- [Release notes](https://github.com/tauri-apps/tauri/releases )
- [Commits](https://github.com/tauri-apps/tauri/compare/tauri-build-v1.5.4...tauri-build-v1.5.5 )
Updates `tokio-util` from 0.7.11 to 0.7.12
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-util-0.7.11...tokio-util-0.7.12 )
Updates `rstest` from 0.22.0 to 0.23.0
- [Release notes](https://github.com/la10736/rstest/releases )
- [Changelog](https://github.com/la10736/rstest/blob/master/CHANGELOG.md )
- [Commits](https://github.com/la10736/rstest/compare/v0.22.0...v0.23.0 )
Updates `clap` from 4.5.16 to 4.5.19
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.16...clap_complete-v4.5.19 )
Updates `regex` from 1.10.6 to 1.11.0
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.10.6...1.11.0 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: backtrace
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: once_cell
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-updates
- dependency-name: reqwest
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: pretty_assertions
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: tempfile
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-updates
- dependency-name: tauri-build
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: tokio-util
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: rstest
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-updates
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-10-02 22:37:53 +00:00
Kiril Videlov
ef91acc71a
Fixes an issue initializing stacks
2024-10-03 00:17:58 +02:00
Kiril Videlov
e00f47aea5
list_virtual_branches now includes the series data
...
at this point only local patches are returned
2024-10-02 23:49:58 +02:00
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