chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Introduce --rm-old-changes to delete previous builds' changes files.
[dgit.git]
/
dgit
diff --git
a/dgit
b/dgit
index 7ec09de85d5932edccdd4b1308f38b505aa41e69..38c1497f808cd9ec990a02a4b230ccad74c643df 100755
(executable)
--- a/
dgit
+++ b/
dgit
@@
-59,6
+59,7
@@
our %previously;
our $existing_package = 'dpkg';
our $cleanmode;
our $changes_since_version;
our $existing_package = 'dpkg';
our $cleanmode;
our $changes_since_version;
+our $rmchanges;
our $quilt_mode;
our $quilt_modes_re = 'linear|smash|auto|nofix|nocheck';
our $we_are_responder;
our $quilt_mode;
our $quilt_modes_re = 'linear|smash|auto|nofix|nocheck';
our $we_are_responder;
@@
-147,6
+148,11
@@
sub dscfn ($) {
return srcfn($vsn,".dsc");
}
return srcfn($vsn,".dsc");
}
+sub changespat ($;$) {
+ my ($vsn, $arch) = @_;
+ return "${package}_".(stripepoch $vsn)."_".($arch//'*').".changes";
+}
+
our $us = 'dgit';
initdebug('');
our $us = 'dgit';
initdebug('');
@@
-1997,12
+2003,11
@@
END
}
my $head = git_rev_parse('HEAD');
if (!$changesfile) {
}
my $head = git_rev_parse('HEAD');
if (!$changesfile) {
- my $multi = "$buildproductsdir/".
- "${package}_".(stripepoch $cversion)."_multi.changes";
+ my $multi = "$buildproductsdir/".changespat $cversion,'multi';
if (stat_exists "$multi") {
$changesfile = $multi;
} else {
if (stat_exists "$multi") {
$changesfile = $multi;
} else {
- my $pat =
"${package}_".(stripepoch $cversion)."_*.changes"
;
+ my $pat =
changespat $cversion
;
my @cs = glob "$buildproductsdir/$pat";
fail "failed to find unique changes file".
" (looked for $pat in $buildproductsdir, or $multi);".
my @cs = glob "$buildproductsdir/$pat";
fail "failed to find unique changes file".
" (looked for $pat in $buildproductsdir, or $multi);".
@@
-3009,6
+3014,16
@@
sub build_prep () {
$package = getfield $clogp, 'Source';
$version = getfield $clogp, 'Version';
build_maybe_quilt_fixup();
$package = getfield $clogp, 'Source';
$version = getfield $clogp, 'Version';
build_maybe_quilt_fixup();
+ if ($rmchanges) {
+ my $pat = changespat $version;
+ foreach my $f (glob "$buildproductsdir/$pat") {
+ if (act_local()) {
+ unlink $f or fail "remove old changes file $f: $!";
+ } else {
+ progress "would remove $f";
+ }
+ }
+ }
}
sub changesopts_initial () {
}
sub changesopts_initial () {
@@
-3106,7
+3121,7
@@
sub build_source {
$suppress_clean = 1;
}
build_prep();
$suppress_clean = 1;
}
build_prep();
- $sourcechanges =
"${package}_".(stripepoch $version)."_source.changes"
;
+ $sourcechanges =
changespat $version,'source'
;
$dscfn = dscfn($version);
if ($cleanmode eq 'dpkg-source') {
runcmd_ordryrun_local @dpkgbuildpackage, qw(-us -uc -S),
$dscfn = dscfn($version);
if ($cleanmode eq 'dpkg-source') {
runcmd_ordryrun_local @dpkgbuildpackage, qw(-us -uc -S),
@@
-3136,7
+3151,7
@@
sub cmd_build_source {
sub cmd_sbuild {
build_source();
changedir "..";
sub cmd_sbuild {
build_source();
changedir "..";
- my $pat =
"${package}_".(stripepoch $version)."_*.changes"
;
+ my $pat =
changespat $version
;
if (act_local()) {
stat_exists $dscfn or fail "$dscfn (in parent directory): $!";
stat_exists $sourcechanges
if (act_local()) {
stat_exists $dscfn or fail "$dscfn (in parent directory): $!";
stat_exists $sourcechanges
@@
-3160,7
+3175,7
@@
sub cmd_sbuild {
if $l =~ m/\.dsc$/;
}
runcmd_ordryrun_local @mergechanges, @changesfiles;
if $l =~ m/\.dsc$/;
}
runcmd_ordryrun_local @mergechanges, @changesfiles;
- my $multichanges =
"${package}_".(stripepoch $version)."_multi.changes"
;
+ my $multichanges =
changespat $version,'multi'
;
if (act_local()) {
stat_exists $multichanges or fail "$multichanges: $!";
foreach my $cf (glob $pat) {
if (act_local()) {
stat_exists $multichanges or fail "$multichanges: $!";
foreach my $cf (glob $pat) {
@@
-3328,6
+3343,9
@@
sub parseopts () {
} elsif (m/^--no-rm-on-error$/s) {
push @ropts, $_;
$rmonerror = 0;
} elsif (m/^--no-rm-on-error$/s) {
push @ropts, $_;
$rmonerror = 0;
+ } elsif (m/^--(no-)?rm-old-changes$/s) {
+ push @ropts, $_;
+ $rmchanges = !$1;
} elsif (m/^--deliberately-($deliberately_re)$/s) {
push @ropts, $_;
push @deliberatelies, $&;
} elsif (m/^--deliberately-($deliberately_re)$/s) {
push @ropts, $_;
push @deliberatelies, $&;
@@
-3434,6
+3452,11
@@
if (!@ARGV) {
my $cmd = shift @ARGV;
$cmd =~ y/-/_/;
my $cmd = shift @ARGV;
$cmd =~ y/-/_/;
+if (!defined $rmchanges) {
+ local $access_forpush;
+ $rmchanges = access_cfg_bool(0, 'rm-old-changes');
+}
+
if (!defined $quilt_mode) {
local $access_forpush;
$quilt_mode = cfg('dgit.force.quilt-mode', 'RETURN-UNDEF')
if (!defined $quilt_mode) {
local $access_forpush;
$quilt_mode = cfg('dgit.force.quilt-mode', 'RETURN-UNDEF')