summaryrefslogtreecommitdiff
path: root/Debian/Dgit.pm
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2015-05-21 07:40:46 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2015-05-31 11:54:15 +0100
commit2f169a239c0ad428328fa2415649dc05318618bb (patch)
tree4f26002a6b8ab02a05f3f6f33bd18657da9f712a /Debian/Dgit.pm
parentd3009c4371f9209cd6745caa5e422355ac6692a7 (diff)
Move is_fast_fwd into Dgit.pm
Diffstat (limited to 'Debian/Dgit.pm')
-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;