#!/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"
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 |
|