From: Alexander Potashev Date: Fri, 09 Jan 2009 20:29:40 GMT Subject: Re: [PATCH] Get format-patch to show first commit after root commit Message-ID: <20090109202940.GA17501@myhost> In-Reply-To: <1231529725-19767-1-git-send-email-nathan.panike@gmail.com> Hello! I experienced this problem today while preparing a simple patch for reply in "[PATCH 2/2] Use is_pseudo_dir_name everywhere" thread. I used a workaround: add a file, commit, remove it, commit, add it once again, commit and after all format-patch. On 13:35 Fri 09 Jan , Nathan W. Panike wrote: > Currently, the command > > git format-patch -1 e83c5163316f89bfbde > > in the git repository creates an empty file. Instead, one is > forced to do > > git format-patch -1 --root e83c5163316f89bfbde > > This seems arbitrary. This patch fixes this case, so that > > git format-patch -1 e83c5163316f89bfbde Your patch doesn't solve the problem if there are more than one commit (say, 2 commits) and you run 'git format-patch -2'. Even with your patch format-patch writes an empty patch file corresponding to the root commit (actually, it creates 2 patches, but the first is empty). Please, correct me if I'm wrong. > > will produce an actual patch. > --- > builtin-log.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/builtin-log.c b/builtin-log.c > index 4a02ee9..5e7b61f 100644 > --- a/builtin-log.c > +++ b/builtin-log.c > @@ -977,6 +977,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) > list[nr - 1] = commit; > } > total = nr; > + if (total == 1 && !list[0]->parents) > + rev.show_root_diff=1; > if (!keep_subject && auto_number && total > 1) > numbered = 1; > if (numbered) > -- > 1.6.1.76.gc123b.dirty