Skip to content

Commit

Permalink
[PATCH] Omit patches that have already been merged from format-patch …
Browse files Browse the repository at this point in the history
…output.

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>
  • Loading branch information
Junio C Hamano committed Sep 13, 2005
1 parent 663a5ed commit 4a5b63e
Showing 1 changed file with 27 additions and 11 deletions.
38 changes: 27 additions & 11 deletions git-format-patch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ with applymbox.
}

diff_opts=
IFS='
'
LF='
'

Expand Down Expand Up @@ -61,7 +59,10 @@ do
--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
Expand All @@ -72,16 +73,20 @@ tt)
die '--keep-subject and --numbered are incompatible.' ;;
esac

revpair=
rev1= rev2=
case "$#" in
2)
revpair="$1..$2" ;;
rev1="$1" rev2="$2" ;;
1)
case "$1" in
*..*)
revpair="$1";;
rev1=`expr "$1" : '\(.*\)\.\.'`
rev2=`expr "$1" : '.*\.\.\(.*\)'`
;;
*)
revpair="$1..HEAD";;
rev1="$1"
rev2="HEAD"
;;
esac ;;
*)
usage ;;
Expand Down Expand Up @@ -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'

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]"`
i=$total
i=1
while read commit
do
git-cat-file commit "$commit" | git-stripspace >$commsg
Expand All @@ -145,7 +161,7 @@ do
esac

file=`printf '%04d-%stxt' $i "$title"`
i=`expr "$i" - 1`
i=`expr "$i" + 1`
echo "* $file"
{
mailScript='
Expand Down

0 comments on commit 4a5b63e

Please sign in to comment.