@matheusbsbs / matheus-bagliano / commits / c8998b4823
Fork 0

mergetool--lib: add p4merge as a pre-configured mergetool option

Add p4merge to the set of built-in diff/merge tools, and update bash completion and documentation. Signed-off-by: Scott Chacon <schacon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Scott Chacon committed Oct 28, 2009 at 14:39 UTC c8998b4823cbccd6bd49c2034e242ae7d5873eae
5 files changed +19 -6
Documentation/git-difftool.txt
+1 -1
@@ -31,7 +31,7 @@ OPTIONS
31 Use the diff tool specified by <tool>.
32 Valid merge tools are:
33 kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
34 - ecmerge, diffuse, opendiff and araxis.
34 + ecmerge, diffuse, opendiff, p4merge and araxis.
35 +
36 If a diff tool is not specified, 'git-difftool'
37 will use the configuration variable `diff.tool`. If the
Documentation/git-mergetool.txt
+1 -1
@@ -27,7 +27,7 @@ OPTIONS
27 Use the merge resolution program specified by <tool>.
28 Valid merge tools are:
29 kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
30 - diffuse, tortoisemerge, opendiff and araxis.
30 + diffuse, tortoisemerge, opendiff, p4merge and araxis.
31 +
32 If a merge resolution program is not specified, 'git-mergetool'
33 will use the configuration variable `merge.tool`. If the
Documentation/merge-config.txt
+1 -1
@@ -23,7 +23,7 @@ merge.tool::
23 Controls which merge resolution program is used by
24 linkgit:git-mergetool[1]. Valid built-in values are: "kdiff3",
25 "tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff",
26 - "diffuse", "ecmerge", "tortoisemerge", "araxis", and
26 + "diffuse", "ecmerge", "tortoisemerge", "p4merge", "araxis" and
27 "opendiff". Any other value is treated is custom merge tool
28 and there must be a corresponding mergetool.<tool>.cmd option.
29
contrib/completion/git-completion.bash
+1 -1
@@ -953,7 +953,7 @@ _git_diff ()
953 }
954
955 __git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff
956 - tkdiff vimdiff gvimdiff xxdiff araxis
956 + tkdiff vimdiff gvimdiff xxdiff araxis p4merge
957 "
958
959 _git_difftool ()
git-mergetool--lib.sh
+15 -2
@@ -46,7 +46,7 @@ check_unchanged () {
46 valid_tool () {
47 case "$1" in
48 kdiff3 | tkdiff | xxdiff | meld | opendiff | \
49 - emerge | vimdiff | gvimdiff | ecmerge | diffuse | araxis)
49 + emerge | vimdiff | gvimdiff | ecmerge | diffuse | araxis | p4merge)
50 ;; # happy
51 tortoisemerge)
52 if ! merge_mode; then
@@ -130,6 +130,19 @@ run_merge_tool () {
130 "$merge_tool_path" "$LOCAL" "$REMOTE"
131 fi
132 ;;
133 + p4merge)
134 + if merge_mode; then
135 + touch "$BACKUP"
136 + if $base_present; then
137 + "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
138 + else
139 + "$merge_tool_path" "$LOCAL" "$LOCAL" "$REMOTE" "$MERGED"
140 + fi
141 + check_unchanged
142 + else
143 + "$merge_tool_path" "$LOCAL" "$REMOTE"
144 + fi
145 + ;;
146 meld)
147 if merge_mode; then
148 touch "$BACKUP"
@@ -323,7 +336,7 @@ guess_merge_tool () {
336 else
337 tools="opendiff kdiff3 tkdiff xxdiff meld $tools"
338 fi
326 - tools="$tools gvimdiff diffuse ecmerge araxis"
339 + tools="$tools gvimdiff diffuse ecmerge p4merge araxis"
340 fi
341 if echo "${VISUAL:-$EDITOR}" | grep emacs > /dev/null 2>&1; then
342 # $EDITOR is emacs so add emerge as a candidate