#!/bin/sh # git-difftool--helper is a GIT_EXTERNAL_DIFF-compatible diff tool launcher. # This script is typically launched by using the 'git difftool' # convenience command. # # Copyright (c) 2009, 2010 David Aguilar TOOL_MODE=diff . git-mergetool--lib # difftool.prompt controls the default prompt/no-prompt behavior # and is overridden with $GIT_DIFFTOOL*_PROMPT. should_prompt () { prompt_merge=$(git config --bool mergetool.prompt || echo true) prompt=$(git config --bool difftool.prompt || echo $prompt_merge) if test "$prompt" = true then test -z "$GIT_DIFFTOOL_NO_PROMPT" else test -n "$GIT_DIFFTOOL_PROMPT" fi } # Indicates that --extcmd=... was specified use_ext_cmd () { test -n "$GIT_DIFFTOOL_EXTCMD" } launch_merge_tool () { # Merged is the filename as it appears in the work tree # Local is the contents of a/filename # Remote is the contents of b/filename # Custom merge tool commands might use $BASE so we provide it MERGED="$1" LOCAL="$2" REMOTE="$3" BASE="$1" # $LOCAL and $REMOTE are temporary files so prompt # the user with the real $MERGED name before launching $merge_tool. if should_prompt then printf "\nViewing (%s/%s): '%s'\n" "$GIT_DIFF_PATH_COUNTER" \ "$GIT_DIFF_PATH_TOTAL" "$MERGED" if use_ext_cmd then printf "Launch '%s' [Y/n]? " \ "$GIT_DIFFTOOL_EXTCMD" else printf "Launch '%s' [Y/n]? " "$merge_tool" fi read ans || return if test "$ans" = n then return fi fi if use_ext_cmd then export BASE eval $GIT_DIFFTOOL_EXTCMD '"$LOCAL"' '"$REMOTE"' else initialize_merge_tool "$merge_tool" # ignore the error from the above --- run_merge_tool # will diagnose unusable tool by itself run_merge_tool "$merge_tool" fi } if ! use_ext_cmd then if test -n "$GIT_DIFF_TOOL" then merge_tool="$GIT_DIFF_TOOL" else merge_tool="$(get_merge_tool)" subshell_exit_status=$? if test $subshell_exit_status -gt 1 then exit $subshell_exit_status fi fi fi if test -n "$GIT_DIFFTOOL_DIRDIFF" then LOCAL="$1" REMOTE="$2" initialize_merge_tool "$merge_tool" # ignore the error from the above --- run_merge_tool # will diagnose unusable tool by itself run_merge_tool "$merge_tool" false else # Launch the merge tool on each path provided by 'git diff' while test $# -gt 6 do launch_merge_tool "$1" "$2" "$5" status=$? if test $status -ge 126 then # Command not found (127), not executable (126) or # exited via a signal (>= 128). exit $status fi if test "$status" != 0 && test "$GIT_DIFFTOOL_TRUST_EXIT_CODE" = true then exit $status fi shift 7 done fi exit 0
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
mergetools | Folder | 0755 |
|
|
git | File | 3.67 MB | 0755 |
|
git-add | File | 3.67 MB | 0755 |
|
git-am | File | 3.67 MB | 0755 |
|
git-annotate | File | 3.67 MB | 0755 |
|
git-apply | File | 3.67 MB | 0755 |
|
git-archive | File | 3.67 MB | 0755 |
|
git-bisect | File | 3.67 MB | 0755 |
|
git-blame | File | 3.67 MB | 0755 |
|
git-branch | File | 3.67 MB | 0755 |
|
git-bugreport | File | 3.67 MB | 0755 |
|
git-bundle | File | 3.67 MB | 0755 |
|
git-cat-file | File | 3.67 MB | 0755 |
|
git-check-attr | File | 3.67 MB | 0755 |
|
git-check-ignore | File | 3.67 MB | 0755 |
|
git-check-mailmap | File | 3.67 MB | 0755 |
|
git-check-ref-format | File | 3.67 MB | 0755 |
|
git-checkout | File | 3.67 MB | 0755 |
|
git-checkout--worker | File | 3.67 MB | 0755 |
|
git-checkout-index | File | 3.67 MB | 0755 |
|
git-cherry | File | 3.67 MB | 0755 |
|
git-cherry-pick | File | 3.67 MB | 0755 |
|
git-clean | File | 3.67 MB | 0755 |
|
git-clone | File | 3.67 MB | 0755 |
|
git-column | File | 3.67 MB | 0755 |
|
git-commit | File | 3.67 MB | 0755 |
|
git-commit-graph | File | 3.67 MB | 0755 |
|
git-commit-tree | File | 3.67 MB | 0755 |
|
git-config | File | 3.67 MB | 0755 |
|
git-contacts | File | 4.4 KB | 0755 |
|
git-count-objects | File | 3.67 MB | 0755 |
|
git-credential | File | 3.67 MB | 0755 |
|
git-credential-cache | File | 3.67 MB | 0755 |
|
git-credential-cache--daemon | File | 3.67 MB | 0755 |
|
git-credential-netrc | File | 10.69 KB | 0755 |
|
git-credential-store | File | 3.67 MB | 0755 |
|
git-describe | File | 3.67 MB | 0755 |
|
git-diagnose | File | 3.67 MB | 0755 |
|
git-diff | File | 3.67 MB | 0755 |
|
git-diff-files | File | 3.67 MB | 0755 |
|
git-diff-index | File | 3.67 MB | 0755 |
|
git-diff-tree | File | 3.67 MB | 0755 |
|
git-difftool | File | 3.67 MB | 0755 |
|
git-difftool--helper | File | 2.55 KB | 0755 |
|
git-fast-export | File | 3.67 MB | 0755 |
|
git-fast-import | File | 3.67 MB | 0755 |
|
git-fetch | File | 3.67 MB | 0755 |
|
git-fetch-pack | File | 3.67 MB | 0755 |
|
git-filter-branch | File | 15.49 KB | 0755 |
|
git-fmt-merge-msg | File | 3.67 MB | 0755 |
|
git-for-each-ref | File | 3.67 MB | 0755 |
|
git-for-each-repo | File | 3.67 MB | 0755 |
|
git-format-patch | File | 3.67 MB | 0755 |
|
git-fsck | File | 3.67 MB | 0755 |
|
git-fsck-objects | File | 3.67 MB | 0755 |
|
git-fsmonitor--daemon | File | 3.67 MB | 0755 |
|
git-gc | File | 3.67 MB | 0755 |
|
git-get-tar-commit-id | File | 3.67 MB | 0755 |
|
git-grep | File | 3.67 MB | 0755 |
|
git-hash-object | File | 3.67 MB | 0755 |
|
git-help | File | 3.67 MB | 0755 |
|
git-hook | File | 3.67 MB | 0755 |
|
git-http-backend | File | 2.14 MB | 0755 |
|
git-http-fetch | File | 2.17 MB | 0755 |
|
git-http-push | File | 2.19 MB | 0755 |
|
git-imap-send | File | 2.19 MB | 0755 |
|
git-index-pack | File | 3.67 MB | 0755 |
|
git-init | File | 3.67 MB | 0755 |
|
git-init-db | File | 3.67 MB | 0755 |
|
git-interpret-trailers | File | 3.67 MB | 0755 |
|
git-log | File | 3.67 MB | 0755 |
|
git-ls-files | File | 3.67 MB | 0755 |
|
git-ls-remote | File | 3.67 MB | 0755 |
|
git-ls-tree | File | 3.67 MB | 0755 |
|
git-mailinfo | File | 3.67 MB | 0755 |
|
git-mailsplit | File | 3.67 MB | 0755 |
|
git-maintenance | File | 3.67 MB | 0755 |
|
git-merge | File | 3.67 MB | 0755 |
|
git-merge-base | File | 3.67 MB | 0755 |
|
git-merge-file | File | 3.67 MB | 0755 |
|
git-merge-index | File | 3.67 MB | 0755 |
|
git-merge-octopus | File | 2.42 KB | 0755 |
|
git-merge-one-file | File | 3.61 KB | 0755 |
|
git-merge-ours | File | 3.67 MB | 0755 |
|
git-merge-recursive | File | 3.67 MB | 0755 |
|
git-merge-resolve | File | 1.2 KB | 0755 |
|
git-merge-subtree | File | 3.67 MB | 0755 |
|
git-merge-tree | File | 3.67 MB | 0755 |
|
git-mergetool | File | 11.42 KB | 0755 |
|
git-mergetool--lib | File | 10.48 KB | 0644 |
|
git-mktag | File | 3.67 MB | 0755 |
|
git-mktree | File | 3.67 MB | 0755 |
|
git-multi-pack-index | File | 3.67 MB | 0755 |
|
git-mv | File | 3.67 MB | 0755 |
|
git-name-rev | File | 3.67 MB | 0755 |
|
git-notes | File | 3.67 MB | 0755 |
|
git-pack-objects | File | 3.67 MB | 0755 |
|
git-pack-redundant | File | 3.67 MB | 0755 |
|
git-pack-refs | File | 3.67 MB | 0755 |
|
git-patch-id | File | 3.67 MB | 0755 |
|
git-prune | File | 3.67 MB | 0755 |
|
git-prune-packed | File | 3.67 MB | 0755 |
|
git-pull | File | 3.67 MB | 0755 |
|
git-push | File | 3.67 MB | 0755 |
|
git-quiltimport | File | 3.61 KB | 0755 |
|
git-range-diff | File | 3.67 MB | 0755 |
|
git-read-tree | File | 3.67 MB | 0755 |
|
git-rebase | File | 3.67 MB | 0755 |
|
git-receive-pack | File | 3.67 MB | 0755 |
|
git-reflog | File | 3.67 MB | 0755 |
|
git-remote | File | 3.67 MB | 0755 |
|
git-remote-ext | File | 3.67 MB | 0755 |
|
git-remote-fd | File | 3.67 MB | 0755 |
|
git-remote-ftp | File | 2.19 MB | 0755 |
|
git-remote-ftps | File | 2.19 MB | 0755 |
|
git-remote-http | File | 2.19 MB | 0755 |
|
git-remote-https | File | 2.19 MB | 0755 |
|
git-repack | File | 3.67 MB | 0755 |
|
git-replace | File | 3.67 MB | 0755 |
|
git-request-pull | File | 4.05 KB | 0755 |
|
git-rerere | File | 3.67 MB | 0755 |
|
git-reset | File | 3.67 MB | 0755 |
|
git-restore | File | 3.67 MB | 0755 |
|
git-rev-list | File | 3.67 MB | 0755 |
|
git-rev-parse | File | 3.67 MB | 0755 |
|
git-revert | File | 3.67 MB | 0755 |
|
git-rm | File | 3.67 MB | 0755 |
|
git-send-pack | File | 3.67 MB | 0755 |
|
git-sh-i18n | File | 1.64 KB | 0644 |
|
git-sh-i18n--envsubst | File | 2.13 MB | 0755 |
|
git-sh-setup | File | 8.2 KB | 0644 |
|
git-shell | File | 2.13 MB | 0755 |
|
git-shortlog | File | 3.67 MB | 0755 |
|
git-show | File | 3.67 MB | 0755 |
|
git-show-branch | File | 3.67 MB | 0755 |
|
git-show-index | File | 3.67 MB | 0755 |
|
git-show-ref | File | 3.67 MB | 0755 |
|
git-sparse-checkout | File | 3.67 MB | 0755 |
|
git-stage | File | 3.67 MB | 0755 |
|
git-stash | File | 3.67 MB | 0755 |
|
git-status | File | 3.67 MB | 0755 |
|
git-stripspace | File | 3.67 MB | 0755 |
|
git-submodule | File | 10.26 KB | 0755 |
|
git-submodule--helper | File | 3.67 MB | 0755 |
|
git-switch | File | 3.67 MB | 0755 |
|
git-symbolic-ref | File | 3.67 MB | 0755 |
|
git-tag | File | 3.67 MB | 0755 |
|
git-unpack-file | File | 3.67 MB | 0755 |
|
git-unpack-objects | File | 3.67 MB | 0755 |
|
git-update-index | File | 3.67 MB | 0755 |
|
git-update-ref | File | 3.67 MB | 0755 |
|
git-update-server-info | File | 3.67 MB | 0755 |
|
git-upload-archive | File | 3.67 MB | 0755 |
|
git-upload-pack | File | 3.67 MB | 0755 |
|
git-var | File | 3.67 MB | 0755 |
|
git-verify-commit | File | 3.67 MB | 0755 |
|
git-verify-pack | File | 3.67 MB | 0755 |
|
git-verify-tag | File | 3.67 MB | 0755 |
|
git-version | File | 3.67 MB | 0755 |
|
git-web--browse | File | 4.3 KB | 0755 |
|
git-whatchanged | File | 3.67 MB | 0755 |
|
git-worktree | File | 3.67 MB | 0755 |
|
git-write-tree | File | 3.67 MB | 0755 |
|
scalar | File | 2.18 MB | 0755 |
|