Skip to content

Commit 589ee8e

Browse files
committed
adapt to changes in gix
1 parent 2547935 commit 589ee8e

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

gitoxide-core/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ serde = ["gix/serde", "dep:serde_json", "dep:serde", "bytesize/serde"]
4949

5050
[dependencies]
5151
# deselect everything else (like "performance") as this should be controllable by the parent application.
52-
gix = { version = "^0.67.0", path = "../gix", default-features = false, features = ["blob-merge", "blob-diff", "revision", "mailmap", "excludes", "attributes", "worktree-mutation", "credentials", "interrupt", "status", "dirwalk"] }
52+
gix = { version = "^0.67.0", path = "../gix", default-features = false, features = ["merge", "blob-diff", "revision", "mailmap", "excludes", "attributes", "worktree-mutation", "credentials", "interrupt", "status", "dirwalk"] }
5353
gix-pack-for-configuration-only = { package = "gix-pack", version = "^0.54.0", path = "../gix-pack", default-features = false, features = ["pack-cache-lru-dynamic", "pack-cache-lru-static", "generate", "streaming-input"] }
5454
gix-transport-configuration-only = { package = "gix-transport", version = "^0.43.0", path = "../gix-transport", default-features = false }
5555
gix-archive-for-configuration-only = { package = "gix-archive", version = "^0.16.0", path = "../gix-archive", optional = true, features = ["tar", "tar_gz"] }

gitoxide-core/src/repository/merge/tree.rs

+6-3
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,15 @@ pub(super) mod function {
7272
.map_or(theirs_id_str.as_str().into(), |n| n.as_bstr())
7373
.into(),
7474
};
75-
let mut res = repo.merge_trees(base_id, ours_id, theirs_id, labels, options)?;
75+
let res = repo.merge_trees(base_id, ours_id, theirs_id, labels, options)?;
76+
let has_conflicts = res.conflicts.is_empty();
77+
let has_unresolved_conflicts = res.has_unresolved_conflicts(UnresolvedConflict::Renames);
7678
{
7779
let _span = gix::trace::detail!("Writing merged tree");
7880
let mut written = 0;
7981
let tree_id = res
8082
.tree
83+
.detach()
8184
.write(|tree| {
8285
written += 1;
8386
repo.write(tree)
@@ -86,10 +89,10 @@ pub(super) mod function {
8689
writeln!(out, "{tree_id} (wrote {written} trees)")?;
8790
}
8891

89-
if !res.conflicts.is_empty() {
92+
if !has_conflicts {
9093
writeln!(err, "{} possibly resolved conflicts", res.conflicts.len())?;
9194
}
92-
if res.has_unresolved_conflicts(UnresolvedConflict::Renames) {
95+
if has_unresolved_conflicts {
9396
bail!("Tree conflicted")
9497
}
9598
Ok(())

0 commit comments

Comments
 (0)