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
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
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
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
4cf5983dfb
Stacking: maintain correct order of heads when updating
2024-10-01 18:28:24 +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
Sebastian Thiel
fe7d5d92e7
add crate to keep gitoxide conversions to prevent duplication
2024-09-24 15:54:07 +02:00
Kiril Videlov
7693b7b9ac
removes the legacy bool indicatin a vbranch is applied
2024-09-06 15:16:20 +02:00
Kiril Videlov
b9e39a4503
remove unused set branch target function
2024-09-06 11:08:36 +02:00
Mattias Granlund
5f9c2e5832
Rename gitbutler/integration -> gitbutler/workspace
2024-09-02 20:53:19 +03: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
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
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
96e0d3e83f
add --trace
to enable tracing
...
This is useful to get simple performance metrics.
2024-08-21 19:23:42 +02:00
Caleb Owens
c98421171e
Introduce edit mode
...
asdf
2024-08-13 14:14:02 +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
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
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
Sebastian Thiel
17850bd210
Use gix
for branch listing
2024-08-07 20:21:29 +02:00
dependabot[bot]
c9c4630087
Bump the rust-updates group across 1 directory with 8 updates
...
Bumps the rust-updates group with 8 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [thiserror](https://github.com/dtolnay/thiserror ) | `1.0.62` | `1.0.63` |
| [tokio](https://github.com/tokio-rs/tokio ) | `1.38.0` | `1.39.2` |
| [console-subscriber](https://github.com/tokio-rs/console ) | `0.3.0` | `0.4.0` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.120` | `1.0.121` |
| [assert_cmd](https://github.com/assert-rs/assert_cmd ) | `2.0.14` | `2.0.15` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.9` | `4.5.13` |
| [bstr](https://github.com/BurntSushi/bstr ) | `1.9.1` | `1.10.0` |
| [toml](https://github.com/toml-rs/toml ) | `0.8.14` | `0.8.15` |
Updates `thiserror` from 1.0.62 to 1.0.63
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.62...1.0.63 )
Updates `tokio` from 1.38.0 to 1.39.2
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.38.0...tokio-1.39.2 )
Updates `console-subscriber` from 0.3.0 to 0.4.0
- [Release notes](https://github.com/tokio-rs/console/releases )
- [Changelog](https://github.com/tokio-rs/console/blob/main/release-plz.toml )
- [Commits](https://github.com/tokio-rs/console/compare/console-subscriber-v0.3.0...console-subscriber-v0.4.0 )
Updates `serde_json` from 1.0.120 to 1.0.121
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.120...v1.0.121 )
Updates `assert_cmd` from 2.0.14 to 2.0.15
- [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md )
- [Commits](https://github.com/assert-rs/assert_cmd/compare/v2.0.14...v2.0.15 )
Updates `clap` from 4.5.9 to 4.5.13
- [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.9...v4.5.13 )
Updates `bstr` from 1.9.1 to 1.10.0
- [Commits](https://github.com/BurntSushi/bstr/compare/1.9.1...1.10.0 )
Updates `toml` from 0.8.14 to 0.8.15
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.14...toml-v0.8.15 )
---
updated-dependencies:
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-updates
- dependency-name: console-subscriber
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-updates
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: assert_cmd
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: bstr
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-updates
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-08-01 19:45:06 +00:00
Sebastian Thiel
2d82b6e038
more tests specific to how branches are discovered
2024-07-31 19:44:00 +02:00
Sebastian Thiel
182381dd79
assure normalization will always provide valid ref-names, or fail.
...
Otherwise, it's possible to run into `git2` errors, which are
more 'indirect'.
2024-07-31 18:52:01 +02:00
Sebastian Thiel
a5bc727705
let integration commit also respect author and committer times.
2024-07-31 18:52:01 +02:00
Sebastian Thiel
39099ba41c
run the nightly cargo fmt
with pnpm fmt
...
This also optimizes imports/uses, which is done only occasionally.
2024-07-28 21:02:40 +02:00
Kiril Videlov
d7f19e5633
revert back to git2 for branch listing
2024-07-25 20:30:41 +02:00
Kiril Videlov
69b7aa3d8a
refactor - move given_name_for_branch from the context to an extension on git2::Reference
2024-07-25 19:29:13 +02:00
Kiril Videlov
6101c5c66f
move hunk and diff code to a separate crate, out of the branch one
2024-07-17 20:16:48 +02:00
Kiril Videlov
d5fffbd4ac
move HunkLock struct to branch actions crate
2024-07-17 18:30:23 +02:00
Kiril Videlov
5d74440d4c
remove lock attribute from diff hunk structs
2024-07-17 18:23:49 +02:00
Sebastian Thiel
3e79238e7f
assure conflicts::mark()
writes its file atomically
...
That way it can't be observed half-written, or remain in a half-written
state in case of crash.
2024-07-15 08:20:06 +02:00
Sebastian Thiel
4a7b63a56e
various refactors in main functions called during project load
...
* use `ctx` as name instead of `project_repository` to make lines shorter
and more readable. This could be done everywhere once the type-name changes
as well.
* Where possible, avoid using `&self` for `VirtualBranchActions` as there is no state.
For now I avoided to remove its usage as field in the filesystem monitor.
* Use a more modern way to use state in `tauri` commands.
* Add the `Ext` suffix to what clearly is extension traits.
2024-07-14 21:32:55 +02:00
Sebastian Thiel
85b4e564cd
simplify module paths of gitbutler-branch
crate
2024-07-14 21:32:55 +02:00
Sebastian Thiel
4501b5dd51
minimize the public API of the branch
crate
...
Only keep public what needs to be public right now, which always
helps with refactoring later.
2024-07-14 21:32:55 +02:00
Kiril Videlov
87f956d871
move ReferenceName tagged string to gitbutler-reference crate
...
gitbutler-reference is where ReferenceName belongs. There are other thing in this crate that are not nice, but let's clean those up!
2024-07-10 16:48:59 +02:00
Kiril Videlov
e92fe44fa1
move branch state into the gitbutler-branch crate
...
Further to the move - the VirtualBranchesExt trait creates a dependency towards gitbutler-project. The gitubler-branch crate doesn't have such dependency so i deemed it undesirable to introduce it just for a convinience method.
(Separately added an extention in gitbutler-virtual-actions since it already depends on project and to create a smaller diff)
2024-07-10 16:18:34 +02:00
Caleb Owens
9f13291edb
Fix migration code
2024-07-09 22:21:05 +02:00
Caleb Owens
9b59764db3
Split branch creation and deletion into their own home
2024-07-09 16:47:24 +02:00
Kiril Videlov
cdec47154d
remove references to gitbutler-core
2024-07-09 15:56:57 +02:00
Kiril Videlov
00354771b7
move ReferenceName type to the reference crate
2024-07-09 14:53:36 +02:00
Kiril Videlov
e4ab6262c9
move branch_ext to branch crate
2024-07-09 14:50:59 +02:00
Kiril Videlov
55b8a0357b
move id module to its own crate
2024-07-09 12:39:18 +02:00