diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2015-05-21 07:40:46 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2015-05-31 11:54:15 +0100 |
commit | 2f169a239c0ad428328fa2415649dc05318618bb (patch) | |
tree | 4f26002a6b8ab02a05f3f6f33bd18657da9f712a /Debian | |
parent | d3009c4371f9209cd6745caa5e422355ac6692a7 (diff) |
Move is_fast_fwd into Dgit.pm
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; |