From: Ian Jackson Date: Thu, 22 Sep 2016 12:26:46 +0000 (+0100) Subject: Pseudomerge: Break out pseudomerge_version_check and _make_commit X-Git-Tag: archive/debian/2.0~122 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=commitdiff_plain;h=d97ebfc48779689ddbe8b096f4590af99e049ede Pseudomerge: Break out pseudomerge_version_check and _make_commit We are going to want to reuse these. It's a bit tangled, but this seems better than a single pseudomerge_make function with a bunch of iffery. Signed-off-by: Ian Jackson --- diff --git a/dgit b/dgit index 5dfd97c7..483c864d 100755 --- a/dgit +++ b/dgit @@ -2395,6 +2395,44 @@ $anc->[1] ($anc->[0]) .. $desc->[1] ($desc->[0]) is not fast forward END }; +sub pseudomerge_version_check ($$) { + my ($clogp, $archive_hash) = @_; + + my $arch_clogp = commit_getclogp $archive_hash; + my $i_arch_v = [ (getfield $arch_clogp, 'Version'), + 'version currently in archive' ]; + if (defined $overwrite_version) { + infopair_cond_equal([ $overwrite_version, '--overwrite= version' ], + $i_arch_v); + } + + printdebug "pseudomerge_version_check i_arch_v @$i_arch_v\n"; + return $i_arch_v; +} + +sub pseudomerge_make_commit ($$$$$) { + my ($clogp, $dgitview, $archive_hash, $i_arch_v, $msg) = @_; + progress "Declaring that HEAD inciudes all changes in $i_arch_v->[0]..."; + + my $tree = cmdoutput qw(git rev-parse), "${dgitview}:"; + my $authline = clogp_authline $clogp; + + mkpath '.git/dgit'; + my $pmf = ".git/dgit/pseudomerge"; + open MC, ">", $pmf or die "$pmf $!"; + print MC < $merged_dgitview @@ -2411,20 +2449,13 @@ sub splitbrain_pseudomerge ($$$$) { # this: $dgitview' # - my $arch_clogp = commit_getclogp $archive_hash; - my $i_arch_v = [ (getfield $arch_clogp, 'Version'), - 'version currently in archive' ]; - - printdebug "splitbrain_pseudomerge i_arch_v @$i_arch_v\n"; + printdebug "splitbrain_pseudomerge...\n"; + + my $i_arch_v = pseudomerge_version_check($clogp, $archive_hash); return $dgitview unless defined $archive_hash; - if (defined $overwrite_version) { - progress "Declaring that HEAD inciudes all changes in archive..."; - progress "Checking that $overwrite_version does so..."; - infopair_cond_equal([ $overwrite_version, '--overwrite= version' ], - $i_arch_v); - } else { + if (!defined $overwrite_version) { progress "Checking that HEAD inciudes all changes in archive..."; } @@ -2442,37 +2473,20 @@ sub splitbrain_pseudomerge ($$$$) { 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; - - mkpath '.git/dgit'; - my $pmf = ".git/dgit/pseudomerge"; - open MC, ">", $pmf or die "$pmf $!"; - print MC <[0] [dgit --quilt=$quilt_mode] -END - } - close MC or die $!; +END_MAKEFF - progress "Making pseudo-merge of $i_arch_v->[0] into dgit view."; - return make_commit($pmf); + progress "Made pseudo-merge of $i_arch_v->[0] into dgit view."; + return $r; } sub push_parse_changelog ($) {