X-Git-Url: http://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=all;h=1cd8124a1e65ac89032995edf89dfdb3e44ebbb6;hp=21c9eaa54f9ad18285933805c805a269307e7956;hb=4ece547f4f5694b5ffb75c10c1e15b272bae1de7;hpb=592d77dbf05125078c51b336b69bfdf19b2ee167 diff --git a/all b/all index 21c9eaa5..1cd8124a 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 @@ -70,6 +70,18 @@ verbose() "$@" } +visible_repo_name() +{ + case "$1" in + .) + echo "the root directory" + ;; + *) + echo "\"$1\"" + ;; + esac +} + check_mergeconflict() { if git ls-files -u | grep ' 1 '; then @@ -141,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" @@ -175,7 +194,7 @@ case "$cmd" in verbose git checkout master fi cd "$d00" - checkself "$SELF" "$@" + checkself "$cmd" "$@" cd "$d0" done if ! $exists; then @@ -186,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" @@ -200,14 +223,15 @@ case "$cmd" in done else for d in $repos; do + dv=`visible_repo_name "$d"` enter "$d0/$d" a= while [ x"$a" != x"y" -a x"$a" != x"n" ]; do - echo "Branch in \"$d\"?" + echo "Branch in $dv?" read -r a done if [ x"$a" = x"y" ]; then - verbose git push "$remote" HEAD:"$branch" + verbose git push "$remote" "$srcbranch":"$branch" verbose git checkout --track -b "$branch" "$remote/$branch" fi cd "$d0" @@ -225,6 +249,7 @@ case "$cmd" in ;; merge) for d in $repos; do + dv=`visible_repo_name "$d"` enter "$d0/$d" r=`git symbolic-ref HEAD` r=${r#refs/heads/} @@ -232,7 +257,7 @@ case "$cmd" in # we have uncommitted changes a= while [ x"$a" != x"y" -a x"$a" != x"n" ]; do - echo "Could merge from \"master\" into \"$r\" in \"$d\". Do it?" + echo "Could merge from \"master\" into \"$r\" in $dv. Do it?" read -r a done if [ x"$a" = x"y" ]; then @@ -247,6 +272,7 @@ case "$cmd" in ;; push) for d in $repos; do + dv=`visible_repo_name "$d"` enter "$d0/$d" r=`git symbolic-ref HEAD` r=${r#refs/heads/} @@ -254,7 +280,7 @@ case "$cmd" in # we have uncommitted changes a= while [ x"$a" != x"y" -a x"$a" != x"n" ]; do - echo "Uncommitted changes in \"$r\" in \"$d\". Commit?" + echo "Uncommitted changes in \"$r\" in $dv. Commit?" read -r a done if [ x"$a" = x"y" ]; then @@ -264,7 +290,7 @@ case "$cmd" in if git log "origin/$r".."$r" | grep .; then a= while [ x"$a" != x"y" -a x"$a" != x"n" ]; do - echo "Push \"$r\" in \"$d\"?" + echo "Push \"$r\" in $dv?" read -r a done if [ x"$a" = x"y" ]; then @@ -329,6 +355,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 "