X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit-junk.git;a=blobdiff_plain;f=copy-alioth-to-gideon;h=81e2421b3d1f79109de28300da61dede2bdf910f;hp=0e65b87c7555eaae6c074313d8f66a419fa47d1e;hb=ebda79f2147f4cc3d7b2e63c7d429384f0fabe07;hpb=07a9887f66adc4f4bfa57bad2914306ccd232965 diff --git a/copy-alioth-to-gideon b/copy-alioth-to-gideon index 0e65b87..81e2421 100755 --- a/copy-alioth-to-gideon +++ b/copy-alioth-to-gideon @@ -12,7 +12,7 @@ ssh iwj@gideon.debian.org " mkdir -p transfer.tmp cd transfer.tmp - rsync -rltHxp --delete iwj@git.debian.org:/git/dgit-repos/repos/. . + rsync -rltHxp --delete iwj@git.debian.org:/git/dgit-repos/repos.now-on-gideon/. . find \( \( ! -type f ! -type d \) \ -o -perm +5002 -o \! -perm +2555 \ @@ -26,10 +26,35 @@ ssh iwj@gideon.debian.org " exit 1 fi + ( + cd $d/transfer.tmp + mv irker.git irker.arrgh + cp -a _template irker.git + cd irker.git + git fetch -p ../irker.arrgh "+refs/heads/dgit/*:refs/dgit/*" + ) + set +x for f in $d/transfer.tmp/*.git; do cp $d/repos/_template/description $f/description touch $f/git-daemon-export-ok + (export GIT_DIR=$f + master=`git for-each-ref "[r]efs/heads/master"` + sid=`git for-each-ref "[r]efs/dgit/sid"` + if [ "x$master" = x ] && [ "x$sid" != x ]; then + git update-ref refs/heads/master refs/dgit/sid + fi) + (export GIT_DIR=$f + git for-each-ref --format="%(refname)" | while read r; do + case "$r" in + refs/heads/master) ;; + refs/tags/debian/*) ;; + refs/dgit/*) ;; + *) + git update-ref -d "$r" + ;; + esac + done) done cat <$d/transfer.run @@ -40,7 +65,7 @@ ssh iwj@gideon.debian.org " echo done locally, copying... distrodir=$d/dispatch-dir/distro\=debian - \$distrodir/mirror-hook \$distrodir/mirror-hook all + \$distrodir/mirror-hook \$distrodir all echo done all. END chmod +x $d/transfer.run