summaryrefslogtreecommitdiff
path: root/Debian
diff options
context:
space:
mode:
Diffstat (limited to 'Debian')
-rw-r--r--Debian/Dgit.pm14
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;