diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-01-20 20:28:50 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-01-20 20:28:50 -0800 |
commit | fcb2a7e4a3c7899a3432f5804889fa3ea5779220 (patch) | |
tree | 0f0785d427c23c7b8dbaae1afcdbd370ea3b639c /Documentation | |
parent | e98f80f50bf9b78aab8cea6184fd708259d0c3b3 (diff) | |
parent | 566c511195adc0ce88559853f2f00933e241d862 (diff) | |
download | git-fcb2a7e4a3c7899a3432f5804889fa3ea5779220.tar.gz |
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 'Documentation')
-rw-r--r-- | Documentation/git-merge-file.txt | 12 | ||||
-rw-r--r-- | Documentation/merge-options.txt | 5 | ||||
-rw-r--r-- | Documentation/merge-strategies.txt | 29 |
3 files changed, 43 insertions, 3 deletions
diff --git a/Documentation/git-merge-file.txt b/Documentation/git-merge-file.txt index fa723d0513..234269ae59 100644 --- a/Documentation/git-merge-file.txt +++ b/Documentation/git-merge-file.txt @@ -10,7 +10,8 @@ SYNOPSIS -------- [verse] 'git merge-file' [-L <current-name> [-L <base-name> [-L <other-name>]]] - [-p|--stdout] [-q|--quiet] <current-file> <base-file> <other-file> + [--ours|--theirs] [-p|--stdout] [-q|--quiet] + <current-file> <base-file> <other-file> DESCRIPTION @@ -34,7 +35,9 @@ normally outputs a warning and brackets the conflict with lines containing >>>>>>> B If there are conflicts, the user should edit the result and delete one of -the alternatives. +the alternatives. When `--ours` or `--theirs` option is in effect, however, +these conflicts are resolved favouring lines from `<current-file>` or +lines from `<other-file>` respectively. The exit value of this program is negative on error, and the number of conflicts otherwise. If the merge was clean, the exit value is 0. @@ -62,6 +65,11 @@ OPTIONS -q:: Quiet; do not warn about conflicts. +--ours:: +--theirs:: + Instead of leaving conflicts in the file, resolve conflicts + favouring our (or their) side of the lines. + EXAMPLES -------- diff --git a/Documentation/merge-options.txt b/Documentation/merge-options.txt index 5064bf83fa..3b83dba1a0 100644 --- a/Documentation/merge-options.txt +++ b/Documentation/merge-options.txt @@ -74,3 +74,8 @@ option can be used to override --squash. -v:: --verbose:: Be verbose. + +-X <option>:: +--strategy-option=<option>:: + Pass merge strategy specific option through to the merge + strategy. diff --git a/Documentation/merge-strategies.txt b/Documentation/merge-strategies.txt index 42910a3d5e..a5bc1dbb95 100644 --- a/Documentation/merge-strategies.txt +++ b/Documentation/merge-strategies.txt @@ -1,6 +1,11 @@ MERGE STRATEGIES ---------------- +The merge mechanism ('git-merge' and 'git-pull' commands) allows the +backend 'merge strategies' to be chosen with `-s` option. Some strategies +can also take their own options, which can be passed by giving `-X<option>` +arguments to 'git-merge' and/or 'git-pull'. + resolve:: This can only resolve two heads (i.e. the current branch and another branch you pulled from) using a 3-way merge @@ -20,6 +25,27 @@ recursive:: Additionally this can detect and handle merges involving renames. This is the default merge strategy when pulling or merging one branch. ++ +The 'recursive' strategy can take the following options: + +ours;; + This option forces conflicting hunks to be auto-resolved cleanly by + favoring 'our' version. Changes from the other tree that do not + conflict with our side are reflected to the merge result. ++ +This should not be confused with the 'ours' merge strategy, which does not +even look at what the other tree contains at all. It discards everything +the other tree did, declaring 'our' history contains all that happened in it. + +theirs;; + This is opposite of 'ours'. + +subtree[=path];; + This option is a more advanced form of 'subtree' strategy, where + the strategy makes a guess on how two trees must be shifted to + match with each other when merging. Instead, the specified path + is prefixed (or stripped from the beginning) to make the shape of + two trees to match. octopus:: This resolves cases with more than two heads, but refuses to do @@ -33,7 +59,8 @@ ours:: merge is always that of the current branch head, effectively ignoring all changes from all other branches. It is meant to be used to supersede old development history of side - branches. + branches. Note that this is different from the -Xours option to + the 'recursive' merge strategy. subtree:: This is a modified recursive strategy. When merging trees A and |