X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=all;h=ebe505eab9e188f2009ef512602f842291436364;hp=d7967467b65057b6111c237fba7c74cdba218ec4;hb=2b9014624ad45f08205ed3d38641ba4c6787982f;hpb=792b0f964cf79db3be162a6b86c77e28a1096aeb diff --git a/all b/all index d7967467..ebe505ea 100755 --- a/all +++ b/all @@ -269,6 +269,18 @@ fix_upstream_rebase() if [ -z "$r_me" ] || [ -z "$r_other" ]; then return fi + + # 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"` + 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 + fi + fi + r_base=`git merge-base "$r_me" "$r_other"` # no merge-base? upstream did filter-branch @@ -368,15 +380,28 @@ bestmirror() bestin= bestt= - for in in "$@"; do + for mir in "$@"; do + case "$mir" in + *:*) + in=${mir%%:*} + op=${mir#*:} + ;; + *) + in=$mir + op= + ;; + esac m=$pre$in$suf if t=`mirrorspeed "$m"`; then - msg "$m -> $t ticks" if [ -n "$t" ]; then + t=$(($t$op)) # fudge factor + msg "$m -> $t ticks ($op)" if [ -z "$bestt" ] || [ "$t" -lt "$bestt" ]; then bestin=$in bestt=$t fi + else + msg "$m -> error" fi else msg "$m -> FAIL" @@ -489,6 +514,7 @@ case "$cmd" in case "$2" in nl) ;; de) ;; + us) ;; best) ;; default) ;; *) @@ -496,6 +522,7 @@ case "$cmd" in msg "Possible locations for the -l option:" msg " nl (Netherlands, run by merlijn)" msg " de (Germany, run by divVerent)" + msg " us (United States of America, run by detrate)" msg " best (find automatically)" msg " default (currently nl)" exit 1 @@ -514,7 +541,7 @@ case "$cmd" in newbase=`$ECHO "$base" | sed "s,://\(.*\.\)\?git.xonotic.org/,:// .git.xonotic.org/,"` case "$newbase" in *\ *) - if location=`bestmirror $newbase"xonotic.git" de nl`; then + 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