Sebastian Thiel
f7d5380687
Some improvements on top of #5089
...
The PR was merged earlier to not hold it after a passed review,
yet I personally feel strongly enough about the backend portions
to give it another round of polish.
2024-10-16 16:35:06 +02:00
Chooooooo
f178c4fed4
Update read_file_from_workspace logic
...
- Refactor `read_file_from_workspace` to separate `HEAD^{tree}` lookup logic
- Add new `read_file_from_tree` function to handle both `HEAD^{tree}` and specific commit lookups
- Add edge case handling for querying files from a specific commit in `read_file_from_workspace`
- Add conditions to handle modified or deleted files in worktree
- Improve file status handling with new `FileStatus` enum
- Update `FileInfo` struct to include file status information
2024-10-15 21:26:39 +09:00
Chooooooo
e789eb1a55
Add preview support for untracked binary files
2024-10-15 03:31:28 +09:00
Chooooo
b4c84fdfd8
Merge branch 'master' into feat/parse-binary-file
2024-10-15 00:07:28 +09: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
Chooooooo
3c9eb56a37
Add parsing for binary files
2024-10-10 19:04:36 +09:00
Caleb Owens
5071cc40ff
LIst conflicted files in commit files list
2024-10-09 20:21:57 +02:00
Kiril Videlov
34ca1f4a65
Merge master
into refactor Branch and Stack
2024-10-08 19:40:17 +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
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
Caleb Owens
531672876f
Remove edit mode flag from backend
2024-10-07 17:08:32 +02:00
Caleb Owens
f47fdd703b
Introduce merge_base_octopussy
2024-10-02 14:59:11 +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
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
Caleb Owens
c7d2bfa025
Support symlinks in create_wd_tree
2024-09-30 18:02:46 +02: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
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
7f348d8a6d
Add tests for reordering commits
2024-09-28 17:50:32 +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
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
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
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
Nico Domino
992496f6a5
fix: protect read file from path traversal ( #4943 )
2024-09-22 17:12:45 +00:00
Caleb Owens
224c03528b
Improve index resolution
2024-09-18 11:45:38 +02:00
Caleb Owens
d995a04b31
Correct merge commit logic
2024-09-13 12:57:46 +02:00
Caleb Owens
e626a6f6ba
Resolve creation/deletion conflicts
2024-09-13 12:32:01 +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
Caleb Owens
6e7aefd5c3
Merge commiting
2024-09-11 14:47:36 +02:00
Caleb Owens
191686ec4d
Ahhh, don't loose shit
2024-09-11 11:23:20 +02:00
Kiril Videlov
3899975d6c
remove useless credentials helper struct
2024-09-06 11:03:57 +02:00
Caleb Owens
e4834dbba9
Fancy fast forward
2024-09-04 14:39:38 +03:00
Mattias Granlund
0db82ea38c
Replace all relevant occurrences of integration with workspace
2024-09-02 20:53:19 +03:00
Mattias Granlund
5f9c2e5832
Rename gitbutler/integration -> gitbutler/workspace
2024-09-02 20:53:19 +03:00
Kiril Videlov
2c7773a6cd
Merge pull request #4793 from Byron/git2-to-gix
...
performance improvements and bug fixes
2024-08-30 12:53:26 +02:00
Caleb Owens
0802d1c477
Resolve merge in less stupid manner
2024-08-30 11:05:20 +02:00
Sebastian Thiel
6a4849d090
refactor: avoid borrowed git2::Oid
as it's a copy type.
...
Usually this makes the affected code simpler.
2024-08-30 07:15:46 +02:00
Sebastian Thiel
c81b140790
Assure the most-recent workspace head is used when emitting changed files.
...
The reason for this is that now the outcome of this can be re-used in `list_virtual_branches`,
which is sensitive to seeing the latest vbranch state which is not a given.
Calculating it makes sure there is no mismatch, and probably "can't be wrong".
Also note that `head_commit()` is still kept around as it's the idea to eventually
use it more.
2024-08-30 07:15:40 +02:00
Sebastian Thiel
47b6d41a26
Merge pull request #4771 from Byron/git2-to-gix
...
list virtual branches performance
2024-08-29 09:50:35 +02:00