$authline =~ m/$git_authline_re/o or
fail "unexpected commit author line format \`$authline'".
" (was generated from changelog Maintainer field)";
+ return ($1,$2,$3) if wantarray;
return $authline;
}
}
}
-sub quiltify_splitbrain ($) {
- my ($diffbits) = @_;
+sub quiltify_splitbrain ($$) {
+ my ($clogp, $diffbits) = @_;
if ($quilt_mode !~ m/gbp|dpm/) {
# treat .gitignore just like any other upstream file
$diffbits = { %$diffbits };
($diffbits->{O2A} & 01) && # some patches
!($diffbits->{H2O} & 01)) { # but HEAD is like orig
quiltify_splitbrain_needed();
- runcmd @gbppq, qw(import);
- die "SPLIT BRAIN";
- }
+ progress "creating patches-applied version using gbp-pq";
+ my @authline = clogp_authline($clogp);
+ local $ENV{GIT_COMMITTER_NAME} = $authline[0];
+ local $ENV{GIT_COMMITTER_EMAIL} = $authline[1];
+ local $ENV{GIT_COMMITTER_DATE} = $authline[2];
+ open STDOUT, ">/dev/null" or die $!;
+ runcmd shell_cmd 'exec >/dev/null', @gbppq, qw(import);
+ }
+ if (($diffbits->{H2O} & 02) && # user has modified .gitignore
+ !($diffbits->{O2A} & 02)) { # patches do not change .gitignore
+ quiltify_splitbrain_needed();
+ progress "creating patch to represent .gitignore changes";
die 'xxx gitignore';
+
+ }
die 'xxx memoisation via git-reflog';
- die 'xxx fast forward';
+ die 'xxx fast forward (should not depend on quilt mode, but will always be needed if we did $split_brain)';
}
sub quiltify ($$$$) {
" --quilt=gbp --quilt=dpm --quilt=unapplied ?";
if ($quilt_mode =~ m/gbp|dpm|unapplied/) {
- quiltify_splitbrain($diffbits);
+ quiltify_splitbrain($clogp, $diffbits);
return;
}