chiark / gitweb /
If a .orig in .. is a symlink, hardlink the link target into our private unpack direc...
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 6f4565bf017314d7ef109a22886445a628f67783..2d42f940f52c8f84c64f8ed6ac97c87786bcf60d 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -1382,7 +1382,7 @@ sub generate_commit_from_dsc () {
        my $f = $fi->{Filename};
        die "$f ?" if $f =~ m#/|^\.|\.dsc$|\.tmp$#;
 
-       link "../../../$f", $f
+       link_ltarget "../../../$f", $f
            or $!==&ENOENT
            or die "$f $!";
 
@@ -2794,7 +2794,7 @@ END
     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);
     }
 
@@ -3124,6 +3124,7 @@ sub defvalopt ($$$$) {
 
 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;
@@ -3160,7 +3161,7 @@ sub parseopts () {
        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;
        }
@@ -3245,11 +3246,6 @@ sub parseopts () {
                    push @ropts, $&;
                    push @changesopts, $_;
                    $_ = '';
-               } 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';