Skip to content

Commit

Permalink
Implement text and binary merge algorithms, also with baseline te…
Browse files Browse the repository at this point in the history
…sts for correctness.
  • Loading branch information
Byron committed Sep 26, 2024
1 parent 9efa09f commit 4783693
Show file tree
Hide file tree
Showing 10 changed files with 1,667 additions and 27 deletions.
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 10 additions & 6 deletions crate-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -324,19 +324,23 @@ Check out the [performance discussion][gix-diff-performance] as well.
* [x] prepare invocation of external diff program
- [ ] pass meta-info
* [ ] working with hunks of data
* [ ] diff-heuristics match Git perfectly
* [x] API documentation
* [ ] Examples

[gix-diff-performance]: https://github.com/Byron/gitoxide/discussions/74

### gix-merge

* [ ] three-way merge analysis of blobs with choice of how to resolve conflicts
* [x] three-way merge analysis of blobs with choice of how to resolve conflicts
- [ ] choose how to resolve conflicts on the data-structure
- [ ] produce a new blob based on data-structure containing possible resolutions
- [ ] `merge` style
- [ ] `diff3` style
- [ ] `zdiff` style

[gix-diff-performance]: https://github.com/Byron/gitoxide/discussions/74
- [x] `merge` style
- [x] `diff3` style
- [x] `zdiff` style
* [ ] diff-heuristics match Git perfectly
* [x] API documentation
* [ ] Examples

### gix-traverse

Expand Down
4 changes: 4 additions & 0 deletions gix-merge/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ serde = { version = "1.0.114", optional = true, default-features = false, featur

document-features = { version = "0.2.0", optional = true }

[dev-dependencies]
gix-testtools = { path = "../tests/tools" }
pretty_assertions = "1.4.0"

[package.metadata.docs.rs]
all-features = true
features = ["document-features"]
804 changes: 784 additions & 20 deletions gix-merge/src/blob/builtin_driver.rs

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion gix-merge/src/blob/platform.rs
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ pub mod merge {
pub other: ResourceRef<'parent>,
}

#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
pub struct Options {
/// If `true`, the resources being merged are contained in a virtual ancestor,
/// which is the case when merge bases are merged into one.
Expand Down
Binary file not shown.
Loading

0 comments on commit 4783693

Please sign in to comment.