Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
[PATCH] Omit patches that have already been merged from format-patch output.
author
Junio C Hamano
<junkio@cox.net>
Sun, 11 Sep 2005 18:35:20 +0000
(11:35 -0700)
committer
Junio C Hamano
<junkio@cox.net>
Tue, 13 Sep 2005 02:15:02 +0000
(19:15 -0700)
This switches the logic to pick which commits to include in the output
from git-rev-list to git-cherry; as a side effect, 'format-patch ^up mine'
would stop working although up..mine would continue to work.
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-format-patch.sh
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
663a5ed
)
diff --git
a/git-format-patch.sh
b/git-format-patch.sh
index cfba1deb259712cd471af1e0af1adec2c42c067d..525a2f22126cfead751c30310ffe2b2fd971fdae 100755
(executable)
--- a/
git-format-patch.sh
+++ b/
git-format-patch.sh
@@
-27,8
+27,6
@@
with applymbox.
}
diff_opts=
}
diff_opts=
-IFS='
-'
LF='
'
LF='
'
@@
-61,7
+59,10
@@
do
--output-directo|--output-director|--output-directory)
case "$#" in 1) usage ;; esac; shift
outdir="$1" ;;
--output-directo|--output-director|--output-directory)
case "$#" in 1) usage ;; esac; shift
outdir="$1" ;;
- -*) diff_opts="$diff_opts$LF$1" ;;
+ -*' '* | -*"$LF"* | -*' '*)
+ # Ignore diff option that has whitespace for now.
+ ;;
+ -*) diff_opts="$diff_opts$1 " ;;
*) break ;;
esac
shift
*) break ;;
esac
shift
@@
-72,16
+73,20
@@
tt)
die '--keep-subject and --numbered are incompatible.' ;;
esac
die '--keep-subject and --numbered are incompatible.' ;;
esac
-rev
pair
=
+rev
1= rev2
=
case "$#" in
2)
case "$#" in
2)
- rev
pair="$1..
$2" ;;
+ rev
1="$1" rev2="
$2" ;;
1)
case "$1" in
*..*)
1)
case "$1" in
*..*)
- revpair="$1";;
+ rev1=`expr "$1" : '\(.*\)\.\.'`
+ rev2=`expr "$1" : '.*\.\.\(.*\)'`
+ ;;
*)
*)
- revpair="$1..HEAD";;
+ rev1="$1"
+ rev2="HEAD"
+ ;;
esac ;;
*)
usage ;;
esac ;;
*)
usage ;;
@@
-127,10
+132,21
@@
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
stripCommitHead='/^'"$_x40"' (from '"$_x40"')$/d'
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
stripCommitHead='/^'"$_x40"' (from '"$_x40"')$/d'
-git-rev-list --no-merges --merge-order \
- $(git-rev-parse --revs-only "$revpair") >$series
+git-cherry -v "$rev1" "$rev2" |
+while read sign rev comment
+do
+ case "$sign" in
+ '-')
+ echo >&2 "Merged already: $comment"
+ ;;
+ *)
+ echo $rev
+ ;;
+ esac
+done >$series
+
total=`wc -l <$series | tr -dc "[0-9]"`
total=`wc -l <$series | tr -dc "[0-9]"`
-i=
$total
+i=
1
while read commit
do
git-cat-file commit "$commit" | git-stripspace >$commsg
while read commit
do
git-cat-file commit "$commit" | git-stripspace >$commsg
@@
-145,7
+161,7
@@
do
esac
file=`printf '%04d-%stxt' $i "$title"`
esac
file=`printf '%04d-%stxt' $i "$title"`
- i=`expr "$i"
-
1`
+ i=`expr "$i"
+
1`
echo "* $file"
{
mailScript='
echo "* $file"
{
mailScript='