chiark / gitweb /
dgit: clone-dgit-repos-server: Set $access_forpush
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 1fdc26c13b0d3a379f8950460df11783665a3521..3b4313bc39d9f1c70c42ba7e17a860d77a270717 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -2673,6 +2673,16 @@ END
        }
        last;
     }
+
+    if (defined $csuite) {
+       printdebug "git_lrfetch_sane: tidying any old suite lrfetchrefs\n";
+       git_for_each_ref("refs/dgit-fetch/$csuite", sub {
+           my ($objid,$objtype,$lrefname,$reftail) = @_;
+           next if $lrfetchrefs_f{$lrefname}; # $csuite eq $distro ?
+           runcmd_ordryrun_local @git, qw(update-ref -d), $lrefname;
+       });
+    }
+
     printdebug "git_lrfetch_sane: git fetch --no-insane emulation complete\n",
        Dumper(\%lrfetchrefs_f);
 }
@@ -6146,6 +6156,7 @@ sub cmd_clone_dgit_repos_server {
     badusage "need destination argument" unless @ARGV==1;
     my ($destdir) = @ARGV;
     $package = '_dgit-repos-server';
+    local $access_forpush = 0;
     my @cmd = (@git, qw(clone), access_giturl(), $destdir);
     debugcmd ">",@cmd;
     exec @cmd or fail "exec git clone: $!\n";