X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=all;h=11bf13e2e19158974d0fb07441f99b641a7d1f1f;hp=c6eb2d3adbc266fbe3781acb67dde57d1e2b7eba;hb=ef35235811287ea777c208252d49f626ede8c44f;hpb=7750b15f0a82aa249085ca1e28f6dad2608e5ea9 diff --git a/all b/all index c6eb2d3a..11bf13e2 100755 --- a/all +++ b/all @@ -18,7 +18,7 @@ SELF="$d0/all" case "$0" in all|*/all) case "`uname`" in - MINGW*) + MINGW*|Win*) # Windows hates users. So this script has to copy itself elsewhere first... tname= cp "$SELF" ../all.xonotic.sh @@ -153,12 +153,19 @@ case "$cmd" in fi ;; esac - if ! verbose git pull; then - check_mergeconflict "$d" - # do not exit, as this may also mean we are tracking something else + verbose git config remote.origin.fetch "refs/heads/*:refs/remotes/origin/*" + + r=`git symbolic-ref HEAD` + r=${r#refs/heads/} + if git config branch.$r.remote >/dev/null 2>&1; then + if ! verbose git pull; then + check_mergeconflict "$d" + exit 1 # FATAL + fi fi + cd "$d00" - checkself "$SELF" "$@" + checkself "$cmd" "$@" cd "$d0/$d" verbose git remote prune origin cd "$d0" @@ -187,7 +194,7 @@ case "$cmd" in verbose git checkout master fi cd "$d00" - checkself "$SELF" "$@" + checkself "$cmd" "$@" cd "$d0" done if ! $exists; then @@ -198,10 +205,14 @@ case "$cmd" in branch) remote=$1 branch=$2 + srcbranch=$3 if [ -z "$branch" ]; then branch=$remote remote=origin fi + if [ -z "$srcbranch" ]; then + srcbranch=master + fi if [ -z "$branch" ]; then for d in $repos; do enter "$d0/$d" @@ -215,13 +226,17 @@ case "$cmd" in dv=`visible_repo_name "$d"` enter "$d0/$d" a= - while [ x"$a" != x"y" -a x"$a" != x"n" ]; do - echo "Branch in $dv?" - read -r a - done - if [ x"$a" = x"y" ]; then - verbose git push "$remote" HEAD:"$branch" - verbose git checkout --track -b "$branch" "$remote/$branch" + if git rev-parse "refs/heads/$branch" >/dev/null 2>&1; then + echo "Already having this branch in $dv." + else + while [ x"$a" != x"y" -a x"$a" != x"n" ]; do + echo "Branch in $dv?" + read -r a + done + if [ x"$a" = x"y" ]; then + verbose git push "$remote" "$srcbranch":"$branch" + verbose git checkout --track -b "$branch" "$remote/$branch" + fi fi cd "$d0" done @@ -259,7 +274,7 @@ case "$cmd" in cd "$d0" done ;; - push) + push|commit) for d in $repos; do dv=`visible_repo_name "$d"` enter "$d0/$d" @@ -344,6 +359,7 @@ case "$cmd" in echo " $SELF push" echo " $SELF branches" echo " $SELF branch [] " + echo " $SELF branch " echo " $SELF checkout [] " echo " $SELF compile" echo " $SELF run "