chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
When quilt linearisation fails, print the right information in the error message...
[dgit.git]
/
dgit
diff --git
a/dgit
b/dgit
index b06e0782aca0dbc1671f107b33e6568f6583018c..7c76a6f5473f6fc97b3fa1b0e1de902c9653faa6 100755
(executable)
--- a/
dgit
+++ b/
dgit
@@
-1382,11
+1382,12
@@
sub generate_commit_from_dsc () {
my $f = $fi->{Filename};
die "$f ?" if $f =~ m#/|^\.|\.dsc$|\.tmp$#;
my $f = $fi->{Filename};
die "$f ?" if $f =~ m#/|^\.|\.dsc$|\.tmp$#;
- link "../../../$f", $f
+ link
_ltarget
"../../../$f", $f
or $!==&ENOENT
or die "$f $!";
or $!==&ENOENT
or die "$f $!";
- complete_file_from_dsc('.', $fi);
+ complete_file_from_dsc('.', $fi)
+ or next;
if (is_orig_file($f)) {
link $f, "../../../../$f"
if (is_orig_file($f)) {
link $f, "../../../../$f"
@@
-1481,10
+1482,10
@@
sub complete_file_from_dsc ($$) {
my $furl = $dscurl;
$furl =~ s{/[^/]+$}{};
$furl .= "/$f";
my $furl = $dscurl;
$furl =~ s{/[^/]+$}{};
$furl .= "/$f";
- die "$f ?" unless $f =~ m/^
${package}
_/;
+ die "$f ?" unless $f =~ m/^
\Q${package}\E
_/;
die "$f ?" if $f =~ m#/#;
runcmd_ordryrun_local @curl,qw(-o),$tf,'--',"$furl";
die "$f ?" if $f =~ m#/#;
runcmd_ordryrun_local @curl,qw(-o),$tf,'--',"$furl";
-
next
if !act_local();
+
return 0
if !act_local();
$downloaded = 1;
}
$downloaded = 1;
}
@@
-1498,13
+1499,16
@@
sub complete_file_from_dsc ($$) {
" demands hash $fi->{Hash} ".
($downloaded ? "(got wrong file from archive!)"
: "(perhaps you should delete this file?)");
" demands hash $fi->{Hash} ".
($downloaded ? "(got wrong file from archive!)"
: "(perhaps you should delete this file?)");
+
+ return 1;
}
sub ensure_we_have_orig () {
foreach my $fi (dsc_files_info()) {
my $f = $fi->{Filename};
next unless is_orig_file($f);
}
sub ensure_we_have_orig () {
foreach my $fi (dsc_files_info()) {
my $f = $fi->{Filename};
next unless is_orig_file($f);
- complete_file_from_dsc('..', $fi);
+ complete_file_from_dsc('..', $fi)
+ or next;
}
}
}
}
@@
-1779,7
+1783,8
@@
sub commit_quilty_patch () {
progress "nothing quilty to commit, ok.";
return;
}
progress "nothing quilty to commit, ok.";
return;
}
- runcmd_ordryrun_local @git, qw(add), sort keys %adds;
+ my @adds = map { s/[][*?\\]/\\$&/g; $_; } sort keys %adds;
+ runcmd_ordryrun_local @git, qw(add -f), @adds;
commit_admin "Commit Debian 3.0 (quilt) metadata";
}
commit_admin "Commit Debian 3.0 (quilt) metadata";
}
@@
-2521,7
+2526,7
@@
sub quiltify ($$) {
remove_stray_gits();
mktree_in_ud_here();
rmtree '.pc';
remove_stray_gits();
mktree_in_ud_here();
rmtree '.pc';
- runcmd @git,
'add', '.'
;
+ runcmd @git,
qw(add -Af .)
;
my $oldtiptree=git_write_tree();
changedir '../work';
my $oldtiptree=git_write_tree();
changedir '../work';
@@
-2622,7
+2627,7
@@
sub quiltify ($$) {
my $abbrev = sub {
my $x = $_[0]{Commit};
$x =~ s/(.*?[0-9a-z]{8})[0-9a-z]*$/$1/;
my $abbrev = sub {
my $x = $_[0]{Commit};
$x =~ s/(.*?[0-9a-z]{8})[0-9a-z]*$/$1/;
- return $;
+ return $
x
;
};
my $reportnot = sub {
my ($notp) = @_;
};
my $reportnot = sub {
my ($notp) = @_;
@@
-2794,7
+2799,7
@@
END
foreach my $f (<../../../../*>) { #/){
my $b=$f; $b =~ s{.*/}{};
next unless is_orig_file $b, srcfn $upstreamversion,'';
foreach my $f (<../../../../*>) { #/){
my $b=$f; $b =~ s{.*/}{};
next unless is_orig_file $b, srcfn $upstreamversion,'';
- link $f, $b or die "$b $!";
+ link
_ltarget
$f, $b or die "$b $!";
$dscaddfile->($b);
}
$dscaddfile->($b);
}
@@
-3124,9
+3129,20
@@
sub defvalopt ($$$$) {
defvalopt '--since-version', '-v', '[^_]+|_', \$changes_since_version;
defvalopt '--distro', '-d', '.+', \$idistro;
defvalopt '--since-version', '-v', '[^_]+|_', \$changes_since_version;
defvalopt '--distro', '-d', '.+', \$idistro;
+defvalopt '', '-k', '.+', \$keyid;
defvalopt '--existing-package','', '.*', \$existing_package;
defvalopt '--build-products-dir','','.*', \$buildproductsdir;
defvalopt '--clean', '', $cleanmode_re, \$cleanmode;
defvalopt '--existing-package','', '.*', \$existing_package;
defvalopt '--build-products-dir','','.*', \$buildproductsdir;
defvalopt '--clean', '', $cleanmode_re, \$cleanmode;
+defvalopt '--quilt', '', $quilt_modes_re, \$quilt_mode;
+
+defvalopt '', '-c', '.*=.*', sub { push @git, '-c', @_; };
+
+defvalopt '', '-C', '.+', sub {
+ ($changesfile) = (@_);
+ if ($changesfile =~ s#^(.*)/##) {
+ $buildproductsdir = $1;
+ }
+};
defvalopt '--initiator-tempdir','','.*', sub {
($initiator_tempdir) = (@_);
defvalopt '--initiator-tempdir','','.*', sub {
($initiator_tempdir) = (@_);
@@
-3150,7
+3166,7
@@
sub parseopts () {
my ($what) = @_;
@rvalopts = ($_);
if (!defined $val) {
my ($what) = @_;
@rvalopts = ($_);
if (!defined $val) {
- badusage "$what needs a value" unless
length
@ARGV;
+ badusage "$what needs a value" unless @ARGV;
$val = shift @ARGV;
push @rvalopts, $val;
}
$val = shift @ARGV;
push @rvalopts, $val;
}
@@
-3196,11
+3212,6
@@
sub parseopts () {
($om = $opts_opt_map{$1})) {
push @ropts, $_;
push @$om, $2;
($om = $opts_opt_map{$1})) {
push @ropts, $_;
push @$om, $2;
- } elsif (m/^--quilt=($quilt_modes_re)$/s) {
- push @ropts, $_;
- $quilt_mode = $1;
- } elsif (m/^--quilt=(.*)$/s) {
- badusage "unknown quilt fixup mode \`$1'";
} elsif (m/^--ignore-dirty$/s) {
push @ropts, $_;
$ignoredirty = 1;
} elsif (m/^--ignore-dirty$/s) {
push @ropts, $_;
$ignoredirty = 1;
@@
-3240,20
+3251,6
@@
sub parseopts () {
push @ropts, $&;
push @changesopts, $_;
$_ = '';
push @ropts, $&;
push @changesopts, $_;
$_ = '';
- } elsif (s/^-c(.*=.*)//s) {
- push @ropts, $&;
- push @git, '-c', $1;
- } elsif (s/^-C(.+)//s) {
- push @ropts, $&;
- $changesfile = $1;
- if ($changesfile =~ s#^(.*)/##) {
- $buildproductsdir = $1;
- }
- } elsif (s/^-k(.+)//s) {
- $keyid=$1;
- } elsif (m/^-[dCk]$/) {
- badusage
- "option \`$_' requires an argument (and no space before the argument)";
} elsif (s/^-wn$//s) {
push @ropts, $&;
$cleanmode = 'none';
} elsif (s/^-wn$//s) {
push @ropts, $&;
$cleanmode = 'none';