diff options
| author | Shawn O. Pearce <spearce@spearce.org> | 2008-09-29 10:04:21 -0700 |
|---|---|---|
| committer | Shawn O. Pearce <spearce@spearce.org> | 2008-09-29 10:15:07 -0700 |
| commit | 9ba929ed652f5ed7707f1c684999af4ad02c4925 (patch) | |
| tree | 434d9a7552de1c2dffaf723120fc90d83aa52743 /builtin-merge-file.c | |
| parent | c11c7a5db3676258512c4067c5279377811d3ab8 (diff) | |
| parent | 3407a7a9e67b165902be85b0807e9ea789b3c67d (diff) | |
Merge branch 'jc/better-conflict-resolution'
* jc/better-conflict-resolution:
Fix AsciiDoc errors in merge documentation
git-merge documentation: describe how conflict is presented
checkout --conflict=<style>: recreate merge in a non-default style
checkout -m: recreate merge when checking out of unmerged index
git-merge-recursive: learn to honor merge.conflictstyle
merge.conflictstyle: choose between "merge" and "diff3 -m" styles
rerere: understand "diff3 -m" style conflicts with the original
rerere.c: use symbolic constants to keep track of parsing states
xmerge.c: "diff3 -m" style clips merge reduction level to EAGER or less
xmerge.c: minimum readability fixups
xdiff-merge: optionally show conflicts in "diff3 -m" style
xdl_fill_merge_buffer(): separate out a too deeply nested function
checkout --ours/--theirs: allow checking out one side of a conflicting merge
checkout -f: allow ignoring unmerged paths when checking out of the index
Conflicts:
Documentation/git-checkout.txt
builtin-checkout.c
builtin-merge-recursive.c
t/t7201-co.sh
Diffstat (limited to 'builtin-merge-file.c')
| -rw-r--r-- | builtin-merge-file.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/builtin-merge-file.c b/builtin-merge-file.c index 3605960c2d..45c98538cd 100644 --- a/builtin-merge-file.c +++ b/builtin-merge-file.c @@ -4,7 +4,7 @@ #include "xdiff-interface.h" static const char merge_file_usage[] = -"git merge-file [-p | --stdout] [-q | --quiet] [-L name1 [-L orig [-L name2]]] file1 orig_file file2"; +"git merge-file [-p | --stdout] [--diff3] [-q | --quiet] [-L name1 [-L orig [-L name2]]] file1 orig_file file2"; int cmd_merge_file(int argc, const char **argv, const char *prefix) { @@ -13,6 +13,17 @@ 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; + int nongit; + + prefix = setup_git_directory_gently(&nongit); + if (!nongit) { + /* Read the configuration file */ + git_config(git_xmerge_config, NULL); + if (0 <= git_xmerge_style) + merge_style = git_xmerge_style; + } while (argc > 4) { if (!strcmp(argv[1], "-L") && i < 3) { @@ -25,6 +36,8 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix) else if (!strcmp(argv[1], "-q") || !strcmp(argv[1], "--quiet")) freopen("/dev/null", "w", stderr); + else if (!strcmp(argv[1], "--diff3")) + merge_style = XDL_MERGE_DIFF3; else usage(merge_file_usage); argc--; @@ -46,7 +59,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, XDL_MERGE_ZEALOUS_ALNUM, &result); + &xpp, merge_level | merge_style, &result); for (i = 0; i < 3; i++) free(mmfs[i].ptr); |
