Stephen Bash b...@genarts.com writes:
From reading the docs it's obvious the current -Xours and -Xtheirs
expect to work on hunks, so I (mostly) understand the current
behavior, but as a user it feels like I'm telling you how to
resolve conflicts, please do the same thing for binary files.
Even though merge-recursive accepts -Xours/-Xtheirs, I do not think
the low-level merge machinery for anything but the text merge is
aware of the option.
It may be just the matter of something like this, though (completely
untested).
ll-merge.c | 25 -
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git i/ll-merge.c w/ll-merge.c
index f3f7692..fee578f 100644
--- i/ll-merge.c
+++ w/ll-merge.c
@@ -46,16 +46,31 @@ static int ll_binary_merge(const struct ll_merge_driver
*drv_unused,
assert(opts);
/*
-* The tentative merge result is ours for the final round,
-* or common ancestor for an internal merge. Still return
-* conflicted merge status.
+* The tentative merge result is the or common ancestor for an internal
merge.
*/
- stolen = opts-virtual_ancestor ? orig : src1;
+ if (opts-virtual_ancestor) {
+ stolen = orig;
+ } else {
+ switch (opts-variant) {
+ default:
+ case XDL_MERGE_FAVOR_OURS:
+ stolen = src1;
+ break;
+ case XDL_MERGE_FAVOR_THEIRS:
+ stolen = src2;
+ break;
+ }
+ }
result-ptr = stolen-ptr;
result-size = stolen-size;
stolen-ptr = NULL;
- return 1;
+
+ /*
+* With -Xtheirs or -Xours, we have cleanly merged;
+* otherwise we got a conflict.
+*/
+ return (opts-variant ? 0 : 1);
}
static int ll_xdl_merge(const struct ll_merge_driver *drv_unused,
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html