1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-06 06:26:12 +02:00

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.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Paolo Bonzini 2007-02-28 21:02:02 +01:00 committed by Junio C Hamano
parent 2c46759db7
commit a94f457e89

View File

@ -553,7 +553,7 @@ sub process_patchset_fast {
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