}
## Now the detailed list of upstream commits.
- $msg .= "\nDetailed list of changes:\n";
- my @paths; my @roots;
- for my $path (keys %DONOR_REV_MAP) {
- my $rev = $DONOR_REV_MAP{$path};
- if (defined $rev) { push @paths, $path; push @roots, $rev; }
- }
- chomp (my @revs = capturex @with_dir, $DONOR_DIR,
- "git", "rev-list", "--reverse",
- "HEAD", "--not", @roots, "--", @paths);
-
- for my $rev (@revs) {
- my @affected = ();
- for my $path (@paths) {
- runx [0, 1], @with_dir, $DONOR_DIR,
- "git", "merge-base", "--is-ancestor",
- $DONOR_REV_MAP{$path}, $rev;
- push @affected, $path if !$EXITVAL;
+ if (grep { defined } values %DONOR_REV_MAP) {
+ $msg .= "\nDetailed list of changes:\n";
+ my @paths; my @roots;
+ for my $path (keys %DONOR_REV_MAP) {
+ my $rev = $DONOR_REV_MAP{$path};
+ if (defined $rev) { push @paths, $path; push @roots, $rev; }
+ }
+ chomp (my @revs = capturex @with_dir, $DONOR_DIR,
+ "git", "rev-list", "--reverse",
+ "HEAD", "--not", @roots, "--", @paths);
+
+ for my $rev (@revs) {
+ my @affected = ();
+ for my $path (@paths) {
+ runx [0, 1], @with_dir, $DONOR_DIR,
+ "git", "merge-base", "--is-ancestor",
+ $DONOR_REV_MAP{$path}, $rev;
+ push @affected, $path if !$EXITVAL;
+ }
+ $msg .= "\n" . join "",
+ grep { s/\s+$/\n/ }
+ map { " " . $_ }
+ capturex @with_dir, $DONOR_DIR,
+ "git", "show", "--stat", $rev, "--", @affected;
}
- $msg .= "\n" . join "",
- grep { s/\s+$/\n/ }
- map { " " . $_ }
- capturex @with_dir, $DONOR_DIR,
- "git", "show", "--stat", $rev, "--", @affected;
+ } else {
+ $msg .= "\nInitial import.\n";
}
## The trailer, so that we can see where we left off.