Code

format-patch: show patch text for the root commit
authorJunio C Hamano <gitster@pobox.com>
Sat, 10 Jan 2009 20:41:33 +0000 (12:41 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sun, 11 Jan 2009 01:40:57 +0000 (17:40 -0800)
Even without --root specified, if the range given on the command line
happens to include a root commit, we should include its patch text in the
output.

This fix deliberately ignores log.showroot configuration variable because
"format-patch" and "log -p" can and should behave differently in this
case, as the former is about exporting a part of your history in a form
that is replayable elsewhere and just giving the commit log message
without the patch text does not make any sense for that purpose.

Noticed and fix originally attempted by Nathan W. Panike; credit goes to
Alexander Potashev for injecting sanity to my initial (broken) fix that
used the value from log.showroot configuration, which was misguided.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-log.c

index db71e0da745ee480f8705c81f2899daf1dc6c4f5..5e302906fb026ca2ed9bd110780aefb058c0c36e 100644 (file)
@@ -962,6 +962,13 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
                 * get_revision() to do the usual traversal.
                 */
        }
+
+       /*
+        * We cannot move this anywhere earlier because we do want to
+        * know if --root was given explicitly from the comand line.
+        */
+       rev.show_root_diff = 1;
+
        if (cover_letter) {
                /* remember the range */
                int i;