X-Git-Url: http://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=all;h=4e0e9460b1ad9133921afe5551690d1f196822fa;hp=21c9eaa54f9ad18285933805c805a269307e7956;hb=2a8628fbe7b9c13fab9bf353af09311ffc156bcb;hpb=592d77dbf05125078c51b336b69bfdf19b2ee167 diff --git a/all b/all index 21c9eaa5..4e0e9460 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 @@ -245,8 +270,9 @@ case "$cmd" in cd "$d0" done ;; - push) + push|commit) 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 "