projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] Fix git patch header processing in git-apply.
[git.git]
/
git-cherry
diff --git
a/git-cherry
b/git-cherry
index
f3bfbf3
..
e186363
100755
(executable)
--- a/
git-cherry
+++ b/
git-cherry
@@
-3,7
+3,9
@@
# Copyright (c) 2005 Junio C Hamano.
#
# Copyright (c) 2005 Junio C Hamano.
#
-usage="usage: $0 "'<upstream> [<head>]
+. git-sh-setup-script || die "Not a git archive."
+
+usage="usage: $0 "'[-v] <upstream> [<head>]
__*__*__*__*__> <upstream>
/
__*__*__*__*__> <upstream>
/
@@
-18,29
+20,38
@@
upstream, it is shown on the standard output.
The output is intended to be used as:
OLD_HEAD=$(git-rev-parse HEAD)
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" &&
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
'
done
'
+case "$1" in -v) verbose=t; shift ;; esac
+
+case "$#,$1" in
+1,*..*)
+ upstream=$(expr "$1" : '\(.*\)\.\.') ours=$(expr "$1" : '.*\.\.\(.*\)$')
+ set x "$upstream" "$ours"
+ shift ;;
+esac
+
case "$#" in
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...
;;
*) 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
tmp=.cherry-tmp$$
patch=$tmp-patch
@@
-74,6
+85,10
@@
do
else
sign=+
fi
else
sign=+
fi
+ case "$verbose" in
+ t)
+ c=$(git-rev-list --pretty=oneline --max-count=1 $c)
+ esac
case "$O" in
'') O="$sign $c" ;;
*) O="$sign $c$LF$O" ;;
case "$O" in
'') O="$sign $c" ;;
*) O="$sign $c$LF$O" ;;