From: Ian Jackson Date: Sat, 7 Jul 2018 21:44:09 +0000 (+0100) Subject: git-debrebase: Break out ff_check (for reuse by convert-from-gbp) X-Git-Tag: archive/debian/5.9~18 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=commitdiff_plain;h=4bee0e93df9c621e0fbfe22d670676e53dd7076a;hp=238568870c670cd067578807c0a4f369f9af1c8a git-debrebase: Break out ff_check (for reuse by convert-from-gbp) No functional change. Signed-off-by: Ian Jackson --- diff --git a/git-debrebase b/git-debrebase index ddb7840c..b029e5cf 100755 --- a/git-debrebase +++ b/git-debrebase @@ -980,19 +980,19 @@ sub ffq_prev_branchinfo () { return gdr_ffq_prev_branchinfo($current); } -sub record_ffq_prev_deferred () { - # => ('status', "message") - # 'status' may be - # deferred message is undef +sub ffq_check ($$$) { + # calls $ff and/or $notff zero or more times + # then returns either (status,message) where status is # exists # detached # weird-symref # notbranch - # if not ff from some branch we should be ff from, is an snag - # if "deferred", will have added something about that to - # @deferred_update_messages, and also maybe printed (already) - # some messages about ff checks - my $currentval = get_head(); + # or (undef,undef, $ffq_prev,$gdrlast) + # $ff and $notff are called like this: + # $ff->("message for stdout\n"); + # $notff->('snag-name', $message); + # normally $currentval should be HEAD + my ($currentval, $ff, $notff) =@_; my ($status, $message, $current, $ffq_prev, $gdrlast) = ffq_prev_branchinfo(); @@ -1024,14 +1024,14 @@ sub record_ffq_prev_deferred () { return unless length $lrval; if (is_fast_fwd $lrval, $currentval) { - print "OK, you are ahead of $lrref\n" or die $!; + $ff->("OK, you are ahead of $lrref\n"); $checked{$lrref} = 1; } elsif (is_fast_fwd $currentval, $lrval) { $checked{$lrref} = -1; - snag 'behind', "you are behind $lrref, divergence risk"; + $notff->('behind', "you are behind $lrref, divergence risk"); } else { $checked{$lrref} = -1; - snag 'diverged', "you have diverged from $lrref"; + $notff->('diverged', "you have diverged from $lrref"); } }; @@ -1056,6 +1056,26 @@ sub record_ffq_prev_deferred () { } elsif ($branch =~ m{^master$}) { $check->("refs/remotes/dgit/dgit/sid", 'remote dgit branch for sid'); } + return (undef, undef, $ffq_prev, $gdrlast); +} + +sub record_ffq_prev_deferred () { + # => ('status', "message") + # 'status' may be + # deferred message is undef + # exists + # detached + # weird-symref + # notbranch + # if not ff from some branch we should be ff from, is an snag + # if "deferred", will have added something about that to + # @deferred_update_messages, and also maybe printed (already) + # some messages about ff checks + my $currentval = get_head(); + + my ($status,$message, $ffq_prev,$gdrlast) = + ffq_check $currentval, sub { print $_[0] or die $!; }, \&snag; + return ($status,$message) if defined $status; snags_maybe_bail();