From: Ian Jackson Date: Thu, 22 Sep 2016 11:46:23 +0000 (+0100) Subject: dgit: Break out `infopair' functions X-Git-Tag: archive/debian/2.0~125 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=commitdiff_plain;h=79ba42b874cdff4f0cb2bf188a4c1940fbad3a62 dgit: Break out `infopair' functions We are going to want to reuse these in a moment. No functional change other than to debug output. Signed-off-by: Ian Jackson --- diff --git a/dgit b/dgit index 451985db..cb6a1778 100755 --- a/dgit +++ b/dgit @@ -2356,6 +2356,35 @@ sub madformat ($) { return 1; } +# An "infopair" is a tuple [ $thing, $what ] +# (often $thing is a commit hash; $what is a description) + +sub infopair_cond_equal ($$) { + my ($x,$y) = @_; + $x->[0] eq $y->[0] or fail <[1] ($x->[0]) not equal to $y->[1] ($y->[0]) +END +}; + +sub infopair_lrf_tag_lookup ($$) { + my ($tagname, $what) = @_; + printdebug "infopair_lrfetchref_tag_lookup $what\n"; + my $lrefname = lrfetchrefs."/tags/$tagname"; + my $tagobj = $lrfetchrefs_f{$lrefname}; + defined $tagobj or fail <[0], $desc->[0]) or fail <[1] ($anc->[0]) .. $desc->[1] ($desc->[0]) is not fast forward +END +}; + sub splitbrain_pseudomerge ($$$$) { my ($clogp, $maintview, $dgitview, $archive_hash) = @_; # => $merged_dgitview @@ -2372,34 +2401,6 @@ sub splitbrain_pseudomerge ($$$$) { # this: $dgitview' # - # We work with tuples [ $thing, $what ] - # (often $thing is a commit hash; $what is a description) - - my $tag_lookup = sub { - my ($tagname, $what) = @_; - printdebug "splitbrain_pseudomerge tag_lookup $what\n"; - my $lrefname = lrfetchrefs."/tags/$tagname"; - my $tagobj = $lrfetchrefs_f{$lrefname}; - defined $tagobj or fail <[0] eq $y->[0] or fail <[1] ($x->[0]) not equal to $y->[1] ($y->[0]) -END - }; - my $cond_ff = sub { - my ($anc,$desc) = @_; - is_fast_fwd($anc->[0], $desc->[0]) or fail <[1] ($anc->[0]) .. $desc->[1] ($desc->[0]) is not fast forward -END - }; - my $arch_clogp = commit_getclogp $archive_hash; my $i_arch_v = [ (getfield $arch_clogp, 'Version'), 'version currently in archive' ]; @@ -2411,8 +2412,8 @@ END if (defined $overwrite_version) { progress "Declaring that HEAD inciudes all changes in archive..."; progress "Checking that $overwrite_version does so..."; - $cond_equal->([ $overwrite_version, '--overwrite= version' ], - $i_arch_v); + infopair_cond_equal([ $overwrite_version, '--overwrite= version' ], + $i_arch_v); } else { progress "Checking that HEAD inciudes all changes in archive..."; } @@ -2420,16 +2421,16 @@ END return $dgitview if is_fast_fwd $archive_hash, $dgitview; my $t_dep14 = debiantag_maintview $i_arch_v->[0], access_basedistro; - my $i_dep14 = $tag_lookup->($t_dep14, "maintainer view tag"); + my $i_dep14 = infopair_lrf_tag_lookup($t_dep14, "maintainer view tag"); my $t_dgit = debiantag_new $i_arch_v->[0], access_basedistro; - my $i_dgit = $tag_lookup->($t_dgit, "dgit view tag"); + my $i_dgit = infopair_lrf_tag_lookup($t_dgit, "dgit view tag"); my $i_archive = [ $archive_hash, "current archive contents" ]; printdebug "splitbrain_pseudomerge i_archive @$i_archive\n"; - $cond_equal->($i_dgit, $i_archive); - $cond_ff->($i_dep14, $i_dgit); - $overwrite_version // $cond_ff->($i_dep14, [ $maintview, 'HEAD' ]); + infopair_cond_equal($i_dgit, $i_archive); + infopair_cond_ff($i_dep14, $i_dgit); + $overwrite_version // infopair_cond_ff($i_dep14, [ $maintview, 'HEAD' ]); my $tree = cmdoutput qw(git rev-parse), "${dgitview}:"; my $authline = clogp_authline $clogp;