format-patch: take sequence of ranges.
authorJunio C Hamano <junkio@cox.net>
Fri, 14 Oct 2005 06:18:46 +0000 (23:18 -0700)
committerJunio C Hamano <junkio@cox.net>
Fri, 14 Oct 2005 06:18:46 +0000 (23:18 -0700)
commit603d874587c1b6126c4415d1ca91cfc799fe9043
treecc065e770dd6d0ac73bf64f170c13a016364fdd4
parentf7aac2eac96b637755c89c2405a41749c8f6033a
format-patch: take sequence of ranges.

This enhances set of revs you can give format-patch.

Originally, format-patch took either one rev, or two revs:

    format-patch rev1
    format-patch rev1 rev2

The first format was a short-hand for "format-patch rev1 HEAD"
(i.e. rev2==HEAD).  What this meant was to find commits that are
in branch rev2 that has not been merged to branch rev1.

The above notation is still supported, but now it takes sequence
of "from1..to1 from2..to2 ...".  In short, the second format has
become a short-hand for "format-patch rev1..rev2".  Commits in
to1 but not in from1, to2 but not in from2, ... are formatted as
emailable patches.

With this, cherry-picking from other branch can be written as:

    git-format-patch -k --stdout master..branch1 master..branch2 |
    git-am -k -3

which is generally faster than traditional cherry-pick (which
always did 3-way merge) if patches apply cleanly, and still
falls back on 3-way merge if some of them do not.

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-format-patch.sh