summaryrefslogtreecommitdiff
path: root/builtin-merge-file.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-01-21 04:28:50 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-01-21 04:28:50 (GMT)
commitfcb2a7e4a3c7899a3432f5804889fa3ea5779220 (patch)
tree0f0785d427c23c7b8dbaae1afcdbd370ea3b639c /builtin-merge-file.c
parente98f80f50bf9b78aab8cea6184fd708259d0c3b3 (diff)
parent566c511195adc0ce88559853f2f00933e241d862 (diff)
downloadgit-fcb2a7e4a3c7899a3432f5804889fa3ea5779220.zip
git-fcb2a7e4a3c7899a3432f5804889fa3ea5779220.tar.gz
git-fcb2a7e4a3c7899a3432f5804889fa3ea5779220.tar.bz2
Merge branch 'ap/merge-backend-opts'
* ap/merge-backend-opts: Document that merge strategies can now take their own options Extend merge-subtree tests to test -Xsubtree=dir. Make "subtree" part more orthogonal to the rest of merge-recursive. pull: Fix parsing of -X<option> Teach git-pull to pass -X<option> to git-merge git merge -X<option> git-merge-file --ours, --theirs Conflicts: git-compat-util.h
Diffstat (limited to 'builtin-merge-file.c')
-rw-r--r--builtin-merge-file.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/builtin-merge-file.c b/builtin-merge-file.c
index afd2ea7..1efc4e0 100644
--- a/builtin-merge-file.c
+++ b/builtin-merge-file.c
@@ -27,13 +27,18 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
mmbuffer_t result = {NULL, 0};
xpparam_t xpp = {XDF_NEED_MINIMAL};
int ret = 0, i = 0, to_stdout = 0;
- int merge_level = XDL_MERGE_ZEALOUS_ALNUM;
- int merge_style = 0, quiet = 0;
+ int level = XDL_MERGE_ZEALOUS_ALNUM;
+ int style = 0, quiet = 0;
+ int favor = 0;
int nongit;
struct option options[] = {
OPT_BOOLEAN('p', "stdout", &to_stdout, "send results to standard output"),
- OPT_SET_INT(0, "diff3", &merge_style, "use a diff3 based merge", XDL_MERGE_DIFF3),
+ OPT_SET_INT(0, "diff3", &style, "use a diff3 based merge", XDL_MERGE_DIFF3),
+ OPT_SET_INT(0, "ours", &favor, "for conflicts, use our version",
+ XDL_MERGE_FAVOR_OURS),
+ OPT_SET_INT(0, "theirs", &favor, "for conflicts, use their version",
+ XDL_MERGE_FAVOR_THEIRS),
OPT__QUIET(&quiet),
OPT_CALLBACK('L', NULL, names, "name",
"set labels for file1/orig_file/file2", &label_cb),
@@ -45,7 +50,7 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
/* Read the configuration file */
git_config(git_xmerge_config, NULL);
if (0 <= git_xmerge_style)
- merge_style = git_xmerge_style;
+ style = git_xmerge_style;
}
argc = parse_options(argc, argv, prefix, options, merge_file_usage, 0);
@@ -68,7 +73,7 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
}
ret = xdl_merge(mmfs + 1, mmfs + 0, names[0], mmfs + 2, names[2],
- &xpp, merge_level | merge_style, &result);
+ &xpp, XDL_MERGE_FLAGS(level, style, favor), &result);
for (i = 0; i < 3; i++)
free(mmfs[i].ptr);