summaryrefslogtreecommitdiff
path: root/dgit
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2015-11-07 13:09:56 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2016-07-01 23:53:45 +0100
commit7121a993cd2206d3f5066e97ebbc397fe079c18f (patch)
tree19019e4648d0fd542bcbcf5937e6264bcdc7f498 /dgit
parentbeb3973ddae45ae7e6d11694301463ce732ead79 (diff)
Introduce --rm-old-changes to delete previous builds' changes files.
Diffstat (limited to 'dgit')
-rwxr-xr-xdgit19
1 files changed, 19 insertions, 0 deletions
diff --git a/dgit b/dgit
index 51df7c3..38c1497 100755
--- a/dgit
+++ b/dgit
@@ -59,6 +59,7 @@ our %previously;
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;
@@ -3013,6 +3014,16 @@ sub build_prep () {
$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 () {
@@ -3332,6 +3343,9 @@ sub parseopts () {
} 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, $&;
@@ -3438,6 +3452,11 @@ if (!@ARGV) {
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')