From: Stephen Rothwell Date: Wed, 19 Mar 2008 04:24:34 +0000 (+1100) Subject: Use rsync for quilt trees on kernel.org X-Git-Url: http://git.ozlabs.org/?a=commitdiff_plain;h=b4b425f2997f39870cc16160b180665204c1b870;p=next-scripts Use rsync for quilt trees on kernel.org --- diff --git a/fetch_trees b/fetch_trees index c83647a..469c63f 100755 --- a/fetch_trees +++ b/fetch_trees @@ -15,6 +15,15 @@ while read email type name url ref; do continue fi if [ "$type" = "quilt" ]; then + case "$url" in + http://kernel.org/*|http://www.kernel.org/*) + use_rsync=true + rurl=$(echo "$url" | sed -r 's,^http://(www\.)?kernel\.org,master.kernel.org:,') + ;; + *) + use_rsync=false + ;; + esac cd ../quilt || { echo "Cannot chdir to ../quilt" 1>&2 continue @@ -29,11 +38,19 @@ while read email type name url ref; do cd "$origwd" continue } - wget -N -nv --no-cache "$url/series" || { - echo "Wget of $name series file failed" 1>&2 - cd "$origwd" - continue - } + if $use_rsync; then + rsync -avz "$rurl/series" series || { + echo "rsync of $name series file failed" 1>&2 + cd "$origwd" + continue + } + else + wget -N -nv --no-cache "$url/series" || { + echo "Wget of $name series file failed" 1>&2 + cd "$origwd" + continue + } + fi find * -type f | grep -v '^series$' | sort >.series.old do_echo=echo grep -q NEXT_PATCHES series && @@ -46,13 +63,23 @@ while read email type name url ref; do *) $do_echo $line ;; esac done .series.next - wget -N -nv --no-cache -B "$url" -i .series.next || { - echo "Wget of series '$name' failed" 1>&2 - cd .. - rm -rf "$name" - git checkout "$name" - break - } + if $use_rsync; then + rsync -avz --files-from .series.next "$rurl" . || { + echo "rsync of series '$name' failed" 1>&2 + cd .. + rm -rf "$name" + git checkout "$name" + break + } + else + wget -N -nv --no-cache -B "$url" -i .series.next || { + echo "Wget of series '$name' failed" 1>&2 + cd .. + rm -rf "$name" + git checkout "$name" + break + } + fi comm -23 .series.old .series.next | xargs -r rm -f rm -f .series.old .series.next cd "$origwd"