X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=all;h=c912afa02533670096b8e41374c105e2bb3a738f;hp=23acd27e6276aea3569f3065994638f930bb2a38;hb=38e1d23580939fac0f4b1ad56abc79e169e694a6;hpb=7f21fe50c709a04174badcfa5b4115bc387849ac diff --git a/all b/all index 23acd27e..c912afa0 100755 --- a/all +++ b/all @@ -272,8 +272,10 @@ fix_upstream_rebase() # one of the two sides of the merge should be remote upstream, or all is fine r_r=`git symbolic-ref HEAD` + r_r=${r_r#refs/heads/} r_rem=`git config "branch.$r_rem.remote" || $ECHO origin` r_bra=`git config "branch.$r_bra.merge" || $ECHO "$r_r"` + r_bra=${r_bra#refs/heads/} if [ x"$r_me" != x"`git rev-parse "$r_rem/$r_bra"`" ]; then if [ x"$r_other" != x"`git rev-parse "$r_rem/$r_bra"`" ]; then return @@ -393,11 +395,11 @@ bestmirror() m=$pre$in$suf if t=`mirrorspeed "$m"`; then if [ -n "$t" ]; then - t=$(($t$op)) # fudge factor - msg "$m -> $t ticks ($op)" - if [ -z "$bestt" ] || [ "$t" -lt "$bestt" ]; then + tt=$(($t$op)) # fudge factor + msg "$m -> $t$op = $tt ticks" + if [ -z "$bestt" ] || [ "$tt" -lt "$bestt" ]; then bestin=$in - bestt=$t + bestt=$tt fi else msg "$m -> error" @@ -535,12 +537,27 @@ case "$cmd" in fi shift done + case "$location" in + current) + if [ x"`git config xonotic.all.mirrorselection 2>/dev/null || true`" != x"done" ]; then + git config xonotic.all.mirrorselection done + location=best + fi + ;; + esac case "$location" in best) + # if we fetched via ssh://, switch to git:// for fetching and keep using ssh:// for pushing + case "$base" in + ssh://*) + pushbase=$base + base=git://git.xonotic.org/xonotic/ + ;; + esac newbase=`$ECHO "$base" | sed "s,://\(.*\.\)\?git.xonotic.org/,:// .git.xonotic.org/,"` case "$newbase" in *\ *) - if location=`bestmirror $newbase"xonotic.git" de us nl:'*3/2'`; then # 50% malus to the NL server to not overload it too much + if location=`bestmirror $newbase"xonotic.git" de us nl:'*6/5'`; then # 20% malus to the NL server to not overload it too much : else location=current