OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
git-core
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
10/28/2024 06:50:42 AM
rwxr-xr-x
📄
git
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-add
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-add--interactive
42.89 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-am
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-annotate
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-apply
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-archive
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-bisect
14.11 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-bisect--helper
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-blame
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-branch
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-bundle
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-cat-file
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-check-attr
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-check-ignore
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-check-mailmap
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-check-ref-format
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-checkout
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-checkout-index
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-cherry
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-cherry-pick
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-clean
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-clone
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-column
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-commit
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-commit-tree
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-config
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-count-objects
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-credential
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-credential-cache
1.26 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-credential-cache--daemon
1.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-credential-store
1.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-daemon
1.28 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-describe
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-diff
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-diff-files
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-diff-index
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-diff-tree
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-difftool
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-difftool--helper
2.19 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-fast-export
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-fast-import
1.3 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-fetch
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-fetch-pack
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-filter-branch
15.17 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-fmt-merge-msg
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-for-each-ref
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-format-patch
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-fsck
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-fsck-objects
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-gc
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-get-tar-commit-id
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-grep
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-hash-object
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-help
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-http-backend
1.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-http-fetch
1.31 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-http-push
1.32 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-imap-send
1.32 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-index-pack
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-init
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-init-db
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-instaweb
18.11 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-interpret-trailers
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-log
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-ls-files
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-ls-remote
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-ls-tree
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-mailinfo
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-mailsplit
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-merge
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-merge-base
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-merge-file
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-merge-index
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-merge-octopus
2.42 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-merge-one-file
3.62 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-merge-ours
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-merge-recursive
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-merge-resolve
944 bytes
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-merge-subtree
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-merge-tree
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-mergetool
10.06 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-mergetool--lib
8.66 KB
04/26/2023 02:14:45 PM
rw-r--r--
📄
git-mktag
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-mktree
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-mv
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-name-rev
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-notes
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-pack-objects
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-pack-redundant
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-pack-refs
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-parse-remote
2.59 KB
04/26/2023 02:14:45 PM
rw-r--r--
📄
git-patch-id
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-prune
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-prune-packed
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-pull
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-push
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-quiltimport
3.51 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-read-tree
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-rebase
16.89 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-rebase--am
2.62 KB
04/26/2023 02:14:45 PM
rw-r--r--
📄
git-rebase--helper
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-rebase--interactive
28.25 KB
04/26/2023 02:14:45 PM
rw-r--r--
📄
git-rebase--merge
4 KB
04/26/2023 02:14:45 PM
rw-r--r--
📄
git-receive-pack
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-reflog
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-remote
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-remote-ext
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-remote-fd
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-remote-ftp
1.32 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-remote-ftps
1.32 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-remote-http
1.32 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-remote-https
1.32 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-remote-testsvn
1.28 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-repack
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-replace
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-request-pull
3.61 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-rerere
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-reset
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-rev-list
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-rev-parse
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-revert
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-rm
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-send-pack
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-sh-i18n
2.3 KB
04/26/2023 02:14:45 PM
rw-r--r--
📄
git-sh-i18n--envsubst
1.26 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-sh-prompt
16 KB
04/26/2023 02:14:45 PM
rw-r--r--
📄
git-sh-setup
9.04 KB
04/26/2023 02:14:45 PM
rw-r--r--
📄
git-shell
1.26 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-shortlog
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-show
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-show-branch
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-show-index
1.26 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-show-ref
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-stage
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-stash
15.12 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-status
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-stripspace
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-submodule
23.38 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-submodule--helper
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-subtree
16.11 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-symbolic-ref
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-tag
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-unpack-file
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-unpack-objects
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-update-index
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-update-ref
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-update-server-info
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-upload-archive
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-upload-pack
1.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-var
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-verify-commit
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-verify-pack
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-verify-tag
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-web--browse
4.3 KB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-whatchanged
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-worktree
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📄
git-write-tree
2.27 MB
04/26/2023 02:14:45 PM
rwxr-xr-x
📁
mergetools
-
05/09/2024 07:13:17 AM
rwxr-xr-x
Editing: git-mergetool--lib
Close
# git-mergetool--lib is a shell library for common merge tool functions : ${MERGE_TOOLS_DIR=$(git --exec-path)/mergetools} IFS=' ' mode_ok () { if diff_mode then can_diff elif merge_mode then can_merge else false fi } is_available () { merge_tool_path=$(translate_merge_tool_path "$1") && type "$merge_tool_path" >/dev/null 2>&1 } list_config_tools () { section=$1 line_prefix=${2:-} git config --get-regexp $section'\..*\.cmd' | while read -r key value do toolname=${key#$section.} toolname=${toolname%.cmd} printf "%s%s\n" "$line_prefix" "$toolname" done } show_tool_names () { condition=${1:-true} per_line_prefix=${2:-} preamble=${3:-} not_found_msg=${4:-} extra_content=${5:-} shown_any= ( cd "$MERGE_TOOLS_DIR" && ls ) | { while read toolname do if setup_tool "$toolname" 2>/dev/null && (eval "$condition" "$toolname") then if test -n "$preamble" then printf "%s\n" "$preamble" preamble= fi shown_any=yes printf "%s%s\n" "$per_line_prefix" "$toolname" fi done if test -n "$extra_content" then if test -n "$preamble" then # Note: no '\n' here since we don't want a # blank line if there is no initial content. printf "%s" "$preamble" preamble= fi shown_any=yes printf "\n%s\n" "$extra_content" fi if test -n "$preamble" && test -n "$not_found_msg" then printf "%s\n" "$not_found_msg" fi test -n "$shown_any" } } diff_mode() { test "$TOOL_MODE" = diff } merge_mode() { test "$TOOL_MODE" = merge } translate_merge_tool_path () { echo "$1" } check_unchanged () { if test "$MERGED" -nt "$BACKUP" then return 0 else while true do echo "$MERGED seems unchanged." printf "Was the merge successful [y/n]? " read answer || return 1 case "$answer" in y*|Y*) return 0 ;; n*|N*) return 1 ;; esac done fi } valid_tool () { setup_tool "$1" && return 0 cmd=$(get_merge_tool_cmd "$1") test -n "$cmd" } setup_user_tool () { merge_tool_cmd=$(get_merge_tool_cmd "$tool") test -n "$merge_tool_cmd" || return 1 diff_cmd () { ( eval $merge_tool_cmd ) } merge_cmd () { ( eval $merge_tool_cmd ) } } setup_tool () { tool="$1" # Fallback definitions, to be overridden by tools. can_merge () { return 0 } can_diff () { return 0 } diff_cmd () { return 1 } merge_cmd () { return 1 } translate_merge_tool_path () { echo "$1" } # Most tools' exit codes cannot be trusted, so By default we ignore # their exit code and check the merged file's modification time in # check_unchanged() to determine whether or not the merge was # successful. The return value from run_merge_cmd, by default, is # determined by check_unchanged(). # # When a tool's exit code can be trusted then the return value from # run_merge_cmd is simply the tool's exit code, and check_unchanged() # is not called. # # The return value of exit_code_trustable() tells us whether or not we # can trust the tool's exit code. # # User-defined and built-in tools default to false. # Built-in tools advertise that their exit code is trustable by # redefining exit_code_trustable() to true. exit_code_trustable () { false } if ! test -f "$MERGE_TOOLS_DIR/$tool" then setup_user_tool return $? fi # Load the redefined functions . "$MERGE_TOOLS_DIR/$tool" # Now let the user override the default command for the tool. If # they have not done so then this will return 1 which we ignore. setup_user_tool if merge_mode && ! can_merge then echo "error: '$tool' can not be used to resolve merges" >&2 return 1 elif diff_mode && ! can_diff then echo "error: '$tool' can only be used to resolve merges" >&2 return 1 fi return 0 } get_merge_tool_cmd () { merge_tool="$1" if diff_mode then git config "difftool.$merge_tool.cmd" || git config "mergetool.$merge_tool.cmd" else git config "mergetool.$merge_tool.cmd" fi } trust_exit_code () { if git config --bool "mergetool.$1.trustExitCode" then :; # OK elif exit_code_trustable then echo true else echo false fi } # Entry point for running tools run_merge_tool () { # If GIT_PREFIX is empty then we cannot use it in tools # that expect to be able to chdir() to its value. GIT_PREFIX=${GIT_PREFIX:-.} export GIT_PREFIX merge_tool_path=$(get_merge_tool_path "$1") || exit base_present="$2" # Bring tool-specific functions into scope setup_tool "$1" || return 1 if merge_mode then run_merge_cmd "$1" else run_diff_cmd "$1" fi } # Run a either a configured or built-in diff tool run_diff_cmd () { diff_cmd "$1" } # Run a either a configured or built-in merge tool run_merge_cmd () { mergetool_trust_exit_code=$(trust_exit_code "$1") if test "$mergetool_trust_exit_code" = "true" then merge_cmd "$1" else touch "$BACKUP" merge_cmd "$1" check_unchanged fi } list_merge_tool_candidates () { if merge_mode then tools="tortoisemerge" else tools="kompare" fi if test -n "$DISPLAY" then if test -n "$GNOME_DESKTOP_SESSION_ID" then tools="meld opendiff kdiff3 tkdiff xxdiff $tools" else tools="opendiff kdiff3 tkdiff xxdiff meld $tools" fi tools="$tools gvimdiff diffuse diffmerge ecmerge" tools="$tools p4merge araxis bc codecompare" fi case "${VISUAL:-$EDITOR}" in *vim*) tools="$tools vimdiff emerge" ;; *) tools="$tools emerge vimdiff" ;; esac } show_tool_help () { tool_opt="'git ${TOOL_MODE}tool --tool=<tool>'" tab=' ' LF=' ' any_shown=no cmd_name=${TOOL_MODE}tool config_tools=$({ diff_mode && list_config_tools difftool "$tab$tab" list_config_tools mergetool "$tab$tab" } | sort) extra_content= if test -n "$config_tools" then extra_content="${tab}user-defined:${LF}$config_tools" fi show_tool_names 'mode_ok && is_available' "$tab$tab" \ "$tool_opt may be set to one of the following:" \ "No suitable tool for 'git $cmd_name --tool=<tool>' found." \ "$extra_content" && any_shown=yes show_tool_names 'mode_ok && ! is_available' "$tab$tab" \ "${LF}The following tools are valid, but not currently available:" && any_shown=yes if test "$any_shown" = yes then echo echo "Some of the tools listed above only work in a windowed" echo "environment. If run in a terminal-only session, they will fail." fi exit 0 } guess_merge_tool () { list_merge_tool_candidates cat >&2 <<-EOF This message is displayed because '$TOOL_MODE.tool' is not configured. See 'git ${TOOL_MODE}tool --tool-help' or 'git help config' for more details. 'git ${TOOL_MODE}tool' will now attempt to use one of the following tools: $tools EOF # Loop over each candidate and stop when a valid merge tool is found. IFS=' ' for tool in $tools do is_available "$tool" && echo "$tool" && return 0 done echo >&2 "No known ${TOOL_MODE} tool is available." return 1 } get_configured_merge_tool () { # Diff mode first tries diff.tool and falls back to merge.tool. # Merge mode only checks merge.tool if diff_mode then merge_tool=$(git config diff.tool || git config merge.tool) else merge_tool=$(git config merge.tool) fi if test -n "$merge_tool" && ! valid_tool "$merge_tool" then echo >&2 "git config option $TOOL_MODE.tool set to unknown tool: $merge_tool" echo >&2 "Resetting to default..." return 1 fi echo "$merge_tool" } get_merge_tool_path () { # A merge tool has been set, so verify that it's valid. merge_tool="$1" if ! valid_tool "$merge_tool" then echo >&2 "Unknown merge tool $merge_tool" exit 1 fi if diff_mode then merge_tool_path=$(git config difftool."$merge_tool".path || git config mergetool."$merge_tool".path) else merge_tool_path=$(git config mergetool."$merge_tool".path) fi if test -z "$merge_tool_path" then merge_tool_path=$(translate_merge_tool_path "$merge_tool") fi if test -z "$(get_merge_tool_cmd "$merge_tool")" && ! type "$merge_tool_path" >/dev/null 2>&1 then echo >&2 "The $TOOL_MODE tool $merge_tool is not available as"\ "'$merge_tool_path'" exit 1 fi echo "$merge_tool_path" } get_merge_tool () { # Check if a merge tool has been configured merge_tool=$(get_configured_merge_tool) # Try to guess an appropriate merge tool if no tool has been set. if test -z "$merge_tool" then merge_tool=$(guess_merge_tool) || exit fi echo "$merge_tool" } mergetool_find_win32_cmd () { executable=$1 sub_directory=$2 # Use $executable if it exists in $PATH if type -p "$executable" >/dev/null 2>&1 then printf '%s' "$executable" return fi # Look for executable in the typical locations for directory in $(env | grep -Ei '^PROGRAM(FILES(\(X86\))?|W6432)=' | cut -d '=' -f 2- | sort -u) do if test -n "$directory" && test -x "$directory/$sub_directory/$executable" then printf '%s' "$directory/$sub_directory/$executable" return fi done printf '%s' "$executable" }