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=f7cf913619d95c8fde79413827544566d8893c4b;hb=a1c877902d59ac9bcf4c5d0a07659e85d50341c8;hpb=7801ef88df5182c00db14af7d49afe76148d3e77 diff --git a/copy-alioth-to-gideon b/copy-alioth-to-gideon index f7cf913..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,9 +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 @@ -36,7 +62,11 @@ ssh iwj@gideon.debian.org " cd $d/transfer.tmp rsync -rltHxp --delete *.git $d/repos/ # _template - echo done. + echo done locally, copying... + + distrodir=$d/dispatch-dir/distro\=debian + \$distrodir/mirror-hook \$distrodir all + echo done all. END chmod +x $d/transfer.run '