git-format-patch -3
authorJunio C Hamano <junkio@cox.net>
Wed, 17 Jan 2007 21:35:13 +0000 (13:35 -0800)
committerJunio C Hamano <junkio@cox.net>
Thu, 18 Jan 2007 07:48:20 +0000 (23:48 -0800)
This teaches "git-format-patch" to honor the --max-count
parameter revision traversal machinery takes, so that you can
say "git-format-patch -3" to process the three topmost commits
from the current HEAD (or "git-format-patch -2 topic" to name a
specific branch).

Signed-off-by: Junio C Hamano <junkio@cox.net>
Documentation/git-format-patch.txt
builtin-log.c

index 574cf76..811c6e2 100644 (file)
@@ -126,6 +126,9 @@ git-format-patch -M -B origin::
        understand renaming patches, so use it only when you know
        the recipient uses git to apply your patch.
 
        understand renaming patches, so use it only when you know
        the recipient uses git to apply your patch.
 
+git-format-patch -3::
+       Extract three topmost commits from the current branch
+       and format them as e-mailable patches.
 
 See Also
 --------
 
 See Also
 --------
index 1cd9d3f..9453e6d 100644 (file)
@@ -482,8 +482,13 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
        }
 
        if (rev.pending.nr == 1) {
        }
 
        if (rev.pending.nr == 1) {
-               rev.pending.objects[0].item->flags |= UNINTERESTING;
-               add_head(&rev);
+               if (rev.max_count < 0) {
+                       rev.pending.objects[0].item->flags |= UNINTERESTING;
+                       add_head(&rev);
+               }
+               /* Otherwise, it is "format-patch -22 HEAD", and
+                * get_revision() would return only the specified count.
+                */
        }
 
        if (ignore_if_in_upstream)
        }
 
        if (ignore_if_in_upstream)