From: Linus Torvalds Date: Sat, 15 Nov 2008 18:02:01 +0000 (-0800) Subject: Fix machine-parseability of 'git log --source' X-Git-Tag: v1.6.1-rc1~43 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=8c4021abfd170278d1a3431e2777bedd0c01fbb1;p=git.git Fix machine-parseability of 'git log --source' The space between the commit and the source attribute is not easily machine-parseable: if we combine --source with --parents and give a SHA1 as a starting point, it's unnecessarily hard to see where the list of parents ends and the source decoration begins. Example: git show --parents --source $(git rev-list HEAD) which is admittedly contrived, but can easily happen in scripting. So use a instead of a space as the source separator. The other decorations didn't have this issue, because they were surrounded by parenthesis, so it's obvious that they aren't parent SHA1's. It so happens that _visually_ this makes no difference for "git log --source", since "commit <40-char SHA1>" is 47 characters, so both a space and a will end up showing as a single commit. Of course, with '--pretty=oneline' or '--parents' or '--abbrev-commit' you'll see the difference. Signed-off-by: Linus Torvalds Signed-off-by: Junio C Hamano --- diff --git a/log-tree.c b/log-tree.c index 5444f0860..194ddb13d 100644 --- a/log-tree.c +++ b/log-tree.c @@ -58,7 +58,7 @@ void show_decorations(struct rev_info *opt, struct commit *commit) struct name_decoration *decoration; if (opt->show_source && commit->util) - printf(" %s", (char *) commit->util); + printf("\t%s", (char *) commit->util); if (!opt->show_decorations) return; decoration = lookup_decoration(&name_decoration, &commit->object);