/usr/libexec/git-core
NameSizeModeActions
mergetools/-0755rm
git43973520755editdlrm
git-add43973520755editdlrm
git-am43973520755editdlrm
git-annotate43973520755editdlrm
git-apply43973520755editdlrm
git-archive43973520755editdlrm
git-backfill43973520755editdlrm
git-bisect43973520755editdlrm
git-blame43973520755editdlrm
git-branch43973520755editdlrm
git-bugreport43973520755editdlrm
git-bundle43973520755editdlrm
git-cat-file43973520755editdlrm
git-check-attr43973520755editdlrm
git-check-ignore43973520755editdlrm
git-check-mailmap43973520755editdlrm
git-check-ref-format43973520755editdlrm
git-checkout43973520755editdlrm
git-checkout--worker43973520755editdlrm
git-checkout-index43973520755editdlrm
git-cherry43973520755editdlrm
git-cherry-pick43973520755editdlrm
git-clean43973520755editdlrm
git-clone43973520755editdlrm
git-column43973520755editdlrm
git-commit43973520755editdlrm
git-commit-graph43973520755editdlrm
git-commit-tree43973520755editdlrm
git-config43973520755editdlrm
git-contacts45090755editdlrm
git-count-objects43973520755editdlrm
git-credential43973520755editdlrm
git-credential-cache43973520755editdlrm
git-credential-cache--daemon43973520755editdlrm
git-credential-netrc112460755editdlrm
git-credential-store43973520755editdlrm
git-describe43973520755editdlrm
git-diagnose43973520755editdlrm
git-diff43973520755editdlrm
git-diff-files43973520755editdlrm
git-diff-index43973520755editdlrm
git-diff-pairs43973520755editdlrm
git-diff-tree43973520755editdlrm
git-difftool43973520755editdlrm
git-difftool--helper26640755editdlrm
git-fast-export43973520755editdlrm
git-fast-import43973520755editdlrm
git-fetch43973520755editdlrm
git-fetch-pack43973520755editdlrm
git-filter-branch157950755editdlrm
git-fmt-merge-msg43973520755editdlrm
git-for-each-ref43973520755editdlrm
git-for-each-repo43973520755editdlrm
git-format-patch43973520755editdlrm
git-fsck43973520755editdlrm
git-fsck-objects43973520755editdlrm
git-fsmonitor--daemon43973520755editdlrm
git-gc43973520755editdlrm
git-get-tar-commit-id43973520755editdlrm
git-grep43973520755editdlrm
git-hash-object43973520755editdlrm
git-help43973520755editdlrm
git-hook43973520755editdlrm
git-http-backend8488480755editdlrm
git-http-fetch9332800755editdlrm
git-http-push12950160755editdlrm
git-imap-send9200720755editdlrm
git-index-pack43973520755editdlrm
git-init43973520755editdlrm
git-init-db43973520755editdlrm
git-interpret-trailers43973520755editdlrm
git-last-modified43973520755editdlrm
git-log43973520755editdlrm
git-ls-files43973520755editdlrm
git-ls-remote43973520755editdlrm
git-ls-tree43973520755editdlrm
git-mailinfo43973520755editdlrm
git-mailsplit43973520755editdlrm
git-maintenance43973520755editdlrm
git-merge43973520755editdlrm
git-merge-base43973520755editdlrm
git-merge-file43973520755editdlrm
git-merge-index43973520755editdlrm
git-merge-octopus24810755editdlrm
git-merge-one-file36990755editdlrm
git-merge-ours43973520755editdlrm
git-merge-recursive43973520755editdlrm
git-merge-resolve12300755editdlrm
git-merge-subtree43973520755editdlrm
git-merge-tree43973520755editdlrm
git-mergetool116970755editdlrm
git-mergetool--lib109080644editdlrm
git-mktag43973520755editdlrm
git-mktree43973520755editdlrm
git-multi-pack-index43973520755editdlrm
git-mv43973520755editdlrm
git-name-rev43973520755editdlrm
git-notes43973520755editdlrm
git-pack-objects43973520755editdlrm
git-pack-redundant43973520755editdlrm
git-pack-refs43973520755editdlrm
git-patch-id43973520755editdlrm
git-prune43973520755editdlrm
git-prune-packed43973520755editdlrm
git-pull43973520755editdlrm
git-push43973520755editdlrm
git-quiltimport37000755editdlrm
git-range-diff43973520755editdlrm
git-read-tree43973520755editdlrm
git-rebase43973520755editdlrm
git-receive-pack43973520755editdlrm
git-reflog43973520755editdlrm
git-refs43973520755editdlrm
git-remote43973520755editdlrm
git-remote-ext43973520755editdlrm
git-remote-fd43973520755editdlrm
git-remote-ftp9668400755editdlrm
git-remote-ftps9668400755editdlrm
git-remote-http9668400755editdlrm
git-remote-https9668400755editdlrm
git-repack43973520755editdlrm
git-replace43973520755editdlrm
git-replay43973520755editdlrm
git-repo43973520755editdlrm
git-request-pull39960755editdlrm
git-rerere43973520755editdlrm
git-reset43973520755editdlrm
git-restore43973520755editdlrm
git-rev-list43973520755editdlrm
git-rev-parse43973520755editdlrm
git-revert43973520755editdlrm
git-rm43973520755editdlrm
git-send-pack43973520755editdlrm
git-sh-i18n16830644editdlrm
git-sh-i18n--envsubst8312640755editdlrm
git-sh-setup83980644editdlrm
git-shell8269600755editdlrm
git-shortlog43973520755editdlrm
git-show43973520755editdlrm
git-show-branch43973520755editdlrm
git-show-index43973520755editdlrm
git-show-ref43973520755editdlrm
git-sparse-checkout43973520755editdlrm
git-stage43973520755editdlrm
git-stash43973520755editdlrm
git-status43973520755editdlrm
git-stripspace43973520755editdlrm
git-submodule104970755editdlrm
git-submodule--helper43973520755editdlrm
git-switch43973520755editdlrm
git-symbolic-ref43973520755editdlrm
git-tag43973520755editdlrm
git-unpack-file43973520755editdlrm
git-unpack-objects43973520755editdlrm
git-update-index43973520755editdlrm
git-update-ref43973520755editdlrm
git-update-server-info43973520755editdlrm
git-upload-archive43973520755editdlrm
git-upload-pack43973520755editdlrm
git-var43973520755editdlrm
git-verify-commit43973520755editdlrm
git-verify-pack43973520755editdlrm
git-verify-tag43973520755editdlrm
git-version43973520755editdlrm
git-web--browse44050755editdlrm
git-whatchanged43973520755editdlrm
git-worktree43973520755editdlrm
git-write-tree43973520755editdlrm
scalar8769680755editdlrm
Edit: /usr/libexec/git-core/git-merge-octopus (2481B)
#!/usr/bin/sh # # Copyright (c) 2005 Junio C Hamano # # Resolve two or more trees. # . git-sh-setup LF=' ' # The first parameters up to -- are merge bases; the rest are heads. bases= head= remotes= sep_seen= for arg do case ",$sep_seen,$head,$arg," in *,--,) sep_seen=yes ;; ,yes,,*) head=$arg ;; ,yes,*) remotes="$remotes$arg " ;; *) bases="$bases$arg " ;; esac done # Reject if this is not an octopus -- resolve should be used instead. case "$remotes" in ?*' '?*) ;; *) exit 2 ;; esac # MRC is the current "merge reference commit" # MRT is the current "merge result tree" if ! git diff-index --quiet --cached HEAD -- then gettextln "Error: Your local changes to the following files would be overwritten by merge" git diff-index --cached --name-only HEAD -- | sed -e 's/^/ /' exit 2 fi MRC=$(git rev-parse --verify -q $head) MRT=$(git write-tree) NON_FF_MERGE=0 OCTOPUS_FAILURE=0 for SHA1 in $remotes do case "$OCTOPUS_FAILURE" in 1) # We allow only last one to have a hand-resolvable # conflicts. Last round failed and we still had # a head to merge. gettextln "Automated merge did not work." gettextln "Should not be doing an octopus." exit 2 esac eval pretty_name=\${GITHEAD_$SHA1:-$SHA1} if test "$SHA1" = "$pretty_name" then SHA1_UP="$(echo "$SHA1" | tr a-z A-Z)" eval pretty_name=\${GITHEAD_$SHA1_UP:-$pretty_name} fi common=$(git merge-base --all $SHA1 $MRC) || die "$(eval_gettext "Unable to find common commit with \$pretty_name")" case "$LF$common$LF" in *"$LF$SHA1$LF"*) eval_gettextln "Already up to date with \$pretty_name" continue ;; esac if test "$common,$NON_FF_MERGE" = "$MRC,0" then # The first head being merged was a fast-forward. # Advance MRC to the head being merged, and use that # tree as the intermediate result of the merge. # We still need to count this as part of the parent set. eval_gettextln "Fast-forwarding to: \$pretty_name" git read-tree -u -m $head $SHA1 || exit MRC=$SHA1 MRT=$(git write-tree) continue fi NON_FF_MERGE=1 eval_gettextln "Trying simple merge with \$pretty_name" git read-tree -u -m --aggressive $common $MRT $SHA1 || exit 2 next=$(git write-tree 2>/dev/null) if test $? -ne 0 then gettextln "Simple merge did not work, trying automatic merge." git merge-index -o git-merge-one-file -a || OCTOPUS_FAILURE=1 next=$(git write-tree 2>/dev/null) fi MRC="$MRC $SHA1" MRT=$next done exit "$OCTOPUS_FAILURE"