fetch();
runcmd_ordryrun @git, qw(merge -m),"Merge from $suite [dgit]",
lrref();
- print "dgit ok: fetched to ".lrref()." and merged into HEAD\n";
+ printdone "fetched to ".lrref()." and merged into HEAD";
+}
+
+sub check_not_dirty () {
+ runcmd @git, qw(diff --quiet);
+}
+
+sub commit_quilty_patch ($) {
+ my ($vsn) = @_;
+ my $output = cmdoutput @git, qw(status --porcelain);
+ my %fixups = map {$_=>1}
+ (".pc/debian-changes-$vsn/","debian/patches/debian-changes-$vsn");
+ my @files;
+ foreach my $l (split /\n/, $output) {
+ next unless $l =~ s/^\?\? //;
+ next unless $fixups{$l};
+ push @files, $l;
+ }
+ print DEBUG "checking for quilty\n", Dumper(\@files);
+ if (@files == 2) {
+ my $m = "Commit Debian 3.0 (quilt) metadata";
+ print "$m\n";
+ runcmd_ordryrun @git, qw(add), @files;
+ runcmd_ordryrun @git, qw(commit -m), $m;
+ }
}
sub dopush () {
- runcmd @git, qw(diff --quiet HEAD);
+ print DEBUG "actually entering push\n";
my $clogp = parsechangelog();
$package = $clogp->{Source};
my $dscfn = "${package}_$clogp->{Version}.dsc";
stat "../$dscfn" or die "$dscfn $!";
$dsc = parsecontrol("../$dscfn");
+ print DEBUG "format $dsc->{Format}\n";
+ if ($dsc->{Format} eq '3.0 (quilt)') {
+ print "Format \`$dsc->{Format}', urgh\n";
+ commit_quilty_patch($dsc->{Version});
+ }
+ check_not_dirty();
prep_ud();
chdir $ud or die $!;
print "checking that $dscfn corresponds to HEAD\n";
sub cmd_push {
parseopts();
die if defined $package;
+ runcmd @git, qw(diff --quiet HEAD);
my $clogp = parsechangelog();
$package = $clogp->{Source};
if (@ARGV==0) {
my $clogp = parsechangelog();
$suite = $clogp->{Distribution};
$package = $clogp->{Source};
+ canonicalise_suite() unless grep { m/^--git-debian-branch/ } @ARGV;
runcmd_ordryrun
qw(git-buildpackage -us -uc --git-no-sign-tags),
'--git-builder=dpkg-buildpackage -i\.git/ -I.git',
@ARGV;
}
+sub cmd_quilt_fixup {
+ my $clogp = parsechangelog();
+ commit_quilty_patch($clogp->{Version});
+}
+
sub parseopts () {
my $om;
while (@ARGV) {
print STDERR "DRY RUN ONLY\n" if $dryrun;
die unless @ARGV;
my $cmd = shift @ARGV;
-
+$cmd =~ y/-/_/;
{ no strict qw(refs); &{"cmd_$cmd"}(); }