diff options
Diffstat (limited to 'Debian')
-rw-r--r-- | Debian/Dgit.pm | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 2c9c9f9..f20f1bc 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -19,7 +19,7 @@ BEGIN { stat_exists fail waitstatusmsg failedcmd cmdoutput cmdoutput_errok git_rev_parse git_for_each_ref - git_for_each_tag_referring + git_for_each_tag_referring is_fast_fwd $package_re $component_re $deliberately_re $branchprefix initdebug enabledebug enabledebuglevel @@ -211,4 +211,16 @@ sub git_for_each_tag_referring ($$) { }); } +sub is_fast_fwd ($$) { + my ($ancestor,$child) = @_; + my @cmd = (qw(git merge-base), $ancestor, $child); + my $mb = cmdoutput_errok @cmd; + if (defined $mb) { + return git_rev_parse($mb) eq git_rev_parse($ancestor); + } else { + $?==256 or failedcmd @cmd; + return 0; + } +} + 1; |