X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=git-cherry;h=f14f017efeacdeef01ff871f4f2ff1949463ee90;hb=46b1c7c03c3ae3bf17aa87bf9ae2f9fb38d08789;hp=f3bfbf3a4e381010755161167ddec2a64f68a17f;hpb=89ab859e9452cbc8f1f15afab52257e9b789c899;p=git.git diff --git a/git-cherry b/git-cherry index f3bfbf3a..f14f017e 100755 --- a/git-cherry +++ b/git-cherry @@ -3,6 +3,8 @@ # Copyright (c) 2005 Junio C Hamano. # +. git-sh-setup-script || die "Not a git archive." + usage="usage: $0 "' [] __*__*__*__*__> @@ -18,29 +20,36 @@ upstream, it is shown on the standard output. The output is intended to be used as: OLD_HEAD=$(git-rev-parse HEAD) - git-rev-parse linus >${GIT_DIR-.}/HEAD - git-cherry linus OLD_HEAD | + git-rev-parse upstream >${GIT_DIR-.}/HEAD + git-cherry upstream $OLD_HEAD | while read commit do GIT_EXTERNAL_DIFF=git-apply-patch-script git-diff-tree -p "$commit" && - git-commit-script -m "$commit" + git-commit-script -C "$commit" done ' +case "$#,$1" in +1,*..*) + upstream=$(expr "$1" : '\(.*\)\.\.') ours=$(expr "$1" : '.*\.\.\(.*\)$') + set x "$upstream" "$ours" + shift ;; +esac + case "$#" in -1) linus=`git-rev-parse --verify "$1"` && - junio=`git-rev-parse --verify HEAD` || exit +1) upstream=`git-rev-parse --verify "$1"` && + ours=`git-rev-parse --verify HEAD` || exit ;; -2) linus=`git-rev-parse --verify "$1"` && - junio=`git-rev-parse --verify "$2"` || exit +2) upstream=`git-rev-parse --verify "$1"` && + ours=`git-rev-parse --verify "$2"` || exit ;; *) echo >&2 "$usage"; exit 1 ;; esac # Note that these list commits in reverse order; # not that the order in inup matters... -inup=`git-rev-list ^$junio $linus` && -ours=`git-rev-list $junio ^$linus` || exit +inup=`git-rev-list ^$ours $upstream` && +ours=`git-rev-list $ours ^$upstream` || exit tmp=.cherry-tmp$$ patch=$tmp-patch