# git-debrebase [<options>] stitch [--prose=<for commit message>]
# git-debrebase [<options>] downstream-rebase-launder-v0 # experimental
#
-# git-debrebase [<options>] convert-from-gbp <upstream-git-rev>
+# git-debrebase [<options>] convert-from-gbp [<upstream-git-rev>]
# git-debrebase [<options>] convert-to-gbp
# problems / outstanding questions:
Contributor => $identical[0]);
}
if (@p == 2 && @identical == 2) {
- my @bytime = nsort_by {
- my ($ph,$pm) = get_commit $_->{CommitId};
+ my $get_t = sub {
+ my ($ph,$pm) = get_commit $_[0]{CommitId};
$ph =~ m/^committer .* (\d+) [-+]\d+$/m or die "$_->{CommitId} ?";
$1;
- } @p;
+ };
+ my @bytime = @p;
+ my $order = $get_t->($bytime[0]) <=> $get_t->($bytime[1]);
+ if ($order > 0) { # newer first
+ } elsif ($order < 0) {
+ @bytime = reverse @bytime;
+ } else {
+ # same age, default to order made by -s ours
+ # that is, commit was made by someone who preferred L
+ }
return $classify->(qw(Pseudomerge),
SubType => qw(Ambiguous),
- Overwritten => [ $bytime[0] ],
- Contributor => $bytime[1]);
+ Contributor => $bytime[0],
+ Overwritten => [ $bytime[1] ]);
}
foreach my $p (@p) {
my ($p_h, $p_m) = get_commit $p->{CommitId};
my $bomb = sub { # usage: return $bomb->();
print $report " Unprocessable" if $report;
+ print $report " ($cl->{Why})" if $report && defined $cl->{Why};
$prprdelim->();
if ($nogenerate) {
return (undef,undef);
}
die "commit $cur: Cannot cope with this commit (d.".
(join ' ', map { sprintf "%#x", $_->{Differs} }
- @{ $cl->{Parents} }). ")";
+ @{ $cl->{Parents} }).
+ (defined $cl->{Why} ? "; $cl->{Why}": '').
+ ")";
};
my $build;