X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=dgit;h=6a153935ca4cfe1535ace227517bc57ddf24e745;hb=f92ca512fda3dbcb85d073065d58b4cda26eed42;hp=38c1497f808cd9ec990a02a4b230ccad74c643df;hpb=7121a993cd2206d3f5066e97ebbc397fe079c18f;p=dgit.git diff --git a/dgit b/dgit index 38c1497f..6a153935 100755 --- a/dgit +++ b/dgit @@ -2003,18 +2003,13 @@ END } my $head = git_rev_parse('HEAD'); if (!$changesfile) { - my $multi = "$buildproductsdir/".changespat $cversion,'multi'; - if (stat_exists "$multi") { - $changesfile = $multi; - } else { - my $pat = changespat $cversion; - my @cs = glob "$buildproductsdir/$pat"; - fail "failed to find unique changes file". - " (looked for $pat in $buildproductsdir, or $multi);". - " perhaps you need to use dgit -C" - unless @cs==1; - ($changesfile) = @cs; - } + my $pat = changespat $cversion; + my @cs = glob "$buildproductsdir/$pat"; + fail "failed to find unique changes file". + " (looked for $pat in $buildproductsdir);". + " perhaps you need to use dgit -C" + unless @cs==1; + ($changesfile) = @cs; } else { $changesfile = "$buildproductsdir/$changesfile"; } @@ -2784,7 +2779,7 @@ sub quilt_fixup_mkwork ($) { mkdir "work" or die $!; changedir "work"; mktree_in_ud_here(); - runcmd @git, qw(reset --hard), $headref; + runcmd @git, qw(reset -q --hard), $headref; } sub quilt_fixup_linkorigs ($$) { @@ -3122,6 +3117,10 @@ sub build_source { } build_prep(); $sourcechanges = changespat $version,'source'; + if (act_local()) { + unlink "../$sourcechanges" or $!==ENOENT + or fail "remove $sourcechanges: $!"; + } $dscfn = dscfn($version); if ($cleanmode eq 'dpkg-source') { runcmd_ordryrun_local @dpkgbuildpackage, qw(-us -uc -S), @@ -3150,16 +3149,20 @@ sub cmd_build_source { sub cmd_sbuild { build_source(); - changedir ".."; my $pat = changespat $version; + if (!$rmchanges) { + my @unwanted = map { s#^\.\./##; $_; } glob "../$pat"; + @unwanted = grep { $_ ne changespat $version,'source' } @unwanted; + fail "changes files other than source matching $pat". + " already present (@unwanted);". + " building would result in ambiguity about the intended results" + if @unwanted; + } + changedir ".."; if (act_local()) { stat_exists $dscfn or fail "$dscfn (in parent directory): $!"; stat_exists $sourcechanges or fail "$sourcechanges (in parent directory): $!"; - foreach my $cf (glob $pat) { - next if $cf eq $sourcechanges; - unlink $cf or fail "remove $cf: $!"; - } } runcmd_ordryrun_local @sbuild, qw(-d), $isuite, @ARGV, $dscfn; my @changesfiles = glob $pat;