chiark / gitweb /
dgit: generate_commits_from_dsc: Introduce $upper_f
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 824e9d1b3ccaaf010c25e4102bf6d3e2e9d04655..135abe5fd1b69291af30d5b2740840c01bbe797c 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -2070,10 +2070,11 @@ sub generate_commits_from_dsc () {
     foreach my $fi (@dfi) {
        my $f = $fi->{Filename};
        die "$f ?" if $f =~ m#/|^\.|\.dsc$|\.tmp$#;
+       my $upper_f = "../../../../$f";
 
        printdebug "considering linking $f: ";
 
-       link_ltarget "../../../../$f", $f
+       link_ltarget $upper_f, $f
            or ((printdebug "($!) "), 0)
            or $!==&ENOENT
            or die "$f $!";
@@ -2083,11 +2084,9 @@ sub generate_commits_from_dsc () {
        complete_file_from_dsc('.', $fi)
            or next;
 
-       if (is_orig_file_in_dsc($f, \@dfi)) {
-           link $f, "../../../../$f"
-               or $!==&EEXIST
-               or die "$f $!";
-       }
+       link $f, $upper_f
+           or $!==&EEXIST
+           or die "$f $!";
     }
 
     # We unpack and record the orig tarballs first, so that we only
@@ -2843,8 +2842,10 @@ END
     };
 
     if (parse_cfg_bool 'rewrite-map-enable', 'true', $rewrite_enable) {
-       my $lrf = $do_fetch->("rewrite map", $rewritemap) or return;
-       $mapref = $lrf.'/'.$rewritemap;
+       if (!defined $mapref) {
+           my $lrf = $do_fetch->("rewrite map", $rewritemap) or return;
+           $mapref = $lrf.'/'.$rewritemap;
+       }
        my $rewritemapdata = git_cat_file $mapref.':map';
        if (defined $rewritemapdata
            && $rewritemapdata =~ m/^$dsc_hash(?:[ \t](\w+))/m) {
@@ -6103,6 +6104,8 @@ Specify  +$specbranch to overwrite, discarding existing history
 END
        if $oldhash && !$force;
 
+    notpushing();
+
     my @dfi = dsc_files_info();
     foreach my $fi (@dfi) {
        my $f = $fi->{Filename};