summaryrefslogtreecommitdiff
path: root/git-debrebase
diff options
context:
space:
mode:
Diffstat (limited to 'git-debrebase')
-rwxr-xr-xgit-debrebase18
1 files changed, 13 insertions, 5 deletions
diff --git a/git-debrebase b/git-debrebase
index cc51f77..b69450b 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -450,15 +450,23 @@ sub classify ($) {
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 {
+ return $unknown->('merge of two identical same-age parents');
+ }
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};