git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Fix git-archimport on empty summary

From
Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
Date
Feb 28, 2007, 20:02 UTC
Message-ID
<45E5DFBA.9070400@lu.unisi.ch>
In-Reply-To
<7vd53u13p3.fsf@assigned-by-dhcp.cox.net>
> I would have liked a proposed commit message that is more in
> line with the rest of the git.git history.

Oops, sorry. I guess that shows where I come from, and I hope that the attached one is better.

Show 9 quoted lines
> However, I see that the result is used this way:
> 
>     my $pid = open2(*READER, *WRITER,'git-commit-tree',$tree,@par) 
>         or die $!;
>     print WRITER $ps->{summary},"\n";
>     print WRITER $ps->{message},"\n";
> 
> What's the arch way of formatting log messages?  Are summary
> lines expected to be multi-line?

No, but the message is formatted as RFC-822, and I can guess Martin was just being defensive. I've never seen a multi-line summary, but I fully agree with you that it's better to get the whole summary on the first line.

Patch attached, tested using the same arch import as before.
Thanks,
Paolo
git-archimport: support empty summaries, put summary on a single line.

Don't fail if the summary line in an arch commit is empty. In this case, try to use the first line in the commit message followed by an ellipsis. In addition, if the summary is multi-line, it is joined on a single line.

diff --git a/git-archimport.perl b/git-archimport.perl
index 66aaeae..0fcb156 100755
--- a/git-archimport.perl
+++ b/git-archimport.perl
@@ -553,7 +553,7 @@ foreach my $ps (@psets) {
 
     my $pid = open2(*READER, *WRITER,'git-commit-tree',$tree,@par) 
         or die $!;
-    print WRITER $ps->{summary},"\n";
+    print WRITER $ps->{summary},"\n\n";
     print WRITER $ps->{message},"\n";
     
     # make it easy to backtrack and figure out which Arch revision this was:
@@ -755,7 +755,8 @@ sub parselog {
             $ps->{tag} = $1;
             $key = undef;
         } elsif (/^Summary:\s*(.*)$/ ) {
-            # summary can be multiline as long as it has a leading space
+            # summary can be multiline as long as it has a leading space.
+	    # we squeeze it onto a single line, though.
             $ps->{summary} = [ $1 ];
             $key = 'summary';
         } elsif (/^Creator: (.*)\s*<([^\>]+)>/) {
@@ -787,8 +788,18 @@ sub parselog {
         }
     }
    
-    # post-processing:
-    $ps->{summary} = join("\n",@{$ps->{summary}})."\n";
+    # drop leading empty lines from the log message
+    while (@$log && $log->[0] eq '') {
+	shift @$log;
+    }
+    if (exists $ps->{summary} && @{$ps->{summary}}) {
+	$ps->{summary} = join(' ', @{$ps->{summary}});
+    }
+    elsif (@$log == 0) {
+	$ps->{summary} = 'empty commit message';
+    } else {
+	$ps->{summary} = $log->[0] . '...';
+    }
     $ps->{message} = join("\n",@$log);
     
     # skip Arch control files, unescape pika-escaped files
Previous: Junio C Hamano
Message 3 of 3 in “Fix git-archimport on empty summary”
  1. Fix git-archimport on empty summaryPaolo Bonzini, Feb 28, 2007
  2. Junio C HamanoFeb 28, 2007
  3. Paolo BonziniFeb 28, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.