chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
git-debrebase: walk: return last upstream merge in breakwater branch
[dgit.git]
/
git-debrebase
diff --git
a/git-debrebase
b/git-debrebase
index 1961bcc5c082d418a792ecac36a5d23b9c7f9eb8..8a431110faad1fc0b47aee9ec9220aba48262612 100755
(executable)
--- a/
git-debrebase
+++ b/
git-debrebase
@@
-473,7
+473,7
@@
sub walk ($;$$);
sub walk ($;$$) {
my ($input,
$nogenerate,$report) = @_;
sub walk ($;$$) {
my ($input,
$nogenerate,$report) = @_;
- # => ($tip, $breakwater_tip)
+ # => ($tip, $breakwater_tip
, $last_upstream_merge_in_breakwater
)
# (or nothing, if $nogenerate)
# go through commits backwards
# (or nothing, if $nogenerate)
# go through commits backwards
@@
-529,6
+529,8
@@
sub walk ($;$$) {
no warnings qw(exiting); last;
};
no warnings qw(exiting); last;
};
+ my $last_upstream_update;
+
for (;;) {
$cl = classify $cur;
my $ty = $cl->{Type};
for (;;) {
$cl = classify $cur;
my $ty = $cl->{Type};
@@
-546,6
+548,7
@@
sub walk ($;$$) {
$cur = $p0;
next;
} elsif ($ty eq 'BreakwaterStart') {
$cur = $p0;
next;
} elsif ($ty eq 'BreakwaterStart') {
+ $last_upstream_update = $cur;
$build_start->('FirstPackaging', $cur);
} elsif ($ty eq 'Upstream') {
push @upp_cl, $cl;
$build_start->('FirstPackaging', $cur);
} elsif ($ty eq 'Upstream') {
push @upp_cl, $cl;
@@
-570,6
+573,7
@@
sub walk ($;$$) {
$cur = $contrib;
next;
} elsif ($ty eq 'BreakwaterUpstreamMerge') {
$cur = $contrib;
next;
} elsif ($ty eq 'BreakwaterUpstreamMerge') {
+ $last_upstream_update = $cur;
$build_start->("PreviousBreakwater", $cur);
} elsif ($ty eq 'DgitImportUnpatched') {
my $pm = $pseudomerges[-1];
$build_start->("PreviousBreakwater", $cur);
} elsif ($ty eq 'DgitImportUnpatched') {
my $pm = $pseudomerges[-1];
@@
-729,6
+733,9
@@
sub walk ($;$$) {
my $newcommit = cmdoutput @cmd;
confess "$ch ?" unless $rewriting or $newcommit eq $cl->{CommitId};
$build = $newcommit;
my $newcommit = cmdoutput @cmd;
confess "$ch ?" unless $rewriting or $newcommit eq $cl->{CommitId};
$build = $newcommit;
+ if (grep { $method eq $_ } qw(DgitImportUpstreamUpdate)) {
+ $last_upstream_update = $cur;
+ }
}
};
}
};
@@
-736,7
+743,7
@@
sub walk ($;$$) {
die sprintf "internal error %#x %s %s", $final_check, $build, $input
if $final_check & ~D_PAT_ADD;
die sprintf "internal error %#x %s %s", $final_check, $build, $input
if $final_check & ~D_PAT_ADD;
- return ($build, $breakwater);
+ return ($build, $breakwater
, $last_upstream_update
);
}
sub get_head () { return git_rev_parse qw(HEAD); }
}
sub get_head () { return git_rev_parse qw(HEAD); }