]> git.ozlabs.org Git - next-scripts/commitdiff
Use rsync for quilt trees on kernel.org
authorStephen Rothwell <sfr@canb.auug.org.au>
Wed, 19 Mar 2008 04:24:34 +0000 (15:24 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 19 Mar 2008 04:24:34 +0000 (15:24 +1100)
fetch_trees

index c83647a393ba4f389120e28277dfe2b52968851e..469c63f14ca96482c77da6dc63c904adb78c703c 100755 (executable)
@@ -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 | sort >.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"