From: Rudolf Polzer Date: Fri, 2 Jul 2010 12:01:07 +0000 (+0200) Subject: autodetect whether a branch is based on master or on div0-stable; flag ./all compile... X-Git-Tag: xonotic-v0.1.0preview~389 X-Git-Url: http://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=commitdiff_plain;h=6c11bb65130b34e7c57fa8d4af3c42c966bb6afc autodetect whether a branch is based on master or on div0-stable; flag ./all compile -n which doesn't make clean --- diff --git a/all b/all index 8f5ffa5c..4d834921 100755 --- a/all +++ b/all @@ -434,11 +434,21 @@ case "$cmd" in fi case "$1" in -c) - clean=true + cleandp=true + cleanqcc=true + cleanqc=true + shift + ;; + -n) + cleandp=false + cleanqcc=false + cleanqc=false shift ;; *) - clean=false + cleandp=false + cleanqcc=false + cleanqc=true # version info ;; esac case "$1" in @@ -471,28 +481,28 @@ case "$cmd" in MAKEFLAGS="$MAKEFLAGS DP_MAKE_TARGET=mingw" fi fi + enter "$d0/fteqcc" verbose - if $clean; then + if $cleanqcc; then verbose make $MAKEFLAGS clean fi verbose make $MAKEFLAGS + enter "$d0/data/xonotic-data.pk3dir" verbose - if $clean; then - verbose make $MAKEFLAGS clean + if $cleanqc; then + verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" "$@" $MAKEFLAGS clean fi - verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" "$@" $MAKEFLAGS clean verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" "$@" $MAKEFLAGS + enter "$d0/darkplaces" verbose - if $clean; then + if $cleandp; then verbose make $MAKEFLAGS clean fi for T in $TARGETS; do verbose make $MAKEFLAGS "$@" "$T" done + verbose "$SELF" update-maps - ;; - makebuild) - ;; run) if [ -n "$WE_HATE_OUR_USERS" ]; then @@ -648,7 +658,7 @@ case "$cmd" in continue ;; */*) - ;; + ;; *) continue ;; @@ -658,9 +668,23 @@ case "$cmd" in continue fi fi + case "$base" in + master) + realbase=$base + ;; + *) + l0=`git rev-parse "$base".."$ref" | wc -l` + l1=`git rev-parse master.."$ref" | wc -l` + if [ $l0 -gt $l1 ]; then + realbase=master + else + realbase=$base + fi + ;; + esac reportecho " Branch $ref:" note=`GIT_NOTES_REF=refs/notes/admin-merge git notes show "$ref" 2>/dev/null || true` - logdata=`git log --color "$base".."$ref"` + logdata=`git log --color "$realbase".."$ref"` if [ -z "$logdata" ]; then reportecho4 "--> not merging, no changes vs master" if yesno "Branch \"$ref\" probably should get deleted. Do it?" ''; then @@ -668,7 +692,7 @@ case "$cmd" in reportecho4 "--> branch deleted" fi else - diffdata=`git diff --color --find-copies-harder --ignore-space-change "$base"..."$ref"` + diffdata=`git diff --color --find-copies-harder --ignore-space-change "$realbase"..."$ref"` if [ -z "$diffdata" ]; then reportecho4 "--> not merging, no changes vs master, branch contains redundant history" if yesno "Branch \"$ref\" probably should get deleted. Do it?" '{ echo "$logdata"; } | less -r'; then @@ -679,7 +703,7 @@ case "$cmd" in reportdo4 echo "$note" reportecho4 "--> not merging, already had this one rejected before" elif yesno "Branch \"$ref\" may want to get merged. Do it?" '{ echo "$logdata"; echo "$diffdata"; } | less -r'; then - git checkout "$base" + git checkout "$realbase" org=`git rev-parse HEAD` if ! git merge "$ref" 2>&1 | tee "$t" && ! { git ls-files -u | grep ' 1 ' >/dev/null; }; then git reset --hard "$org" @@ -914,7 +938,7 @@ case "$cmd" in echo " $SELF branch [] " echo " $SELF branch " echo " $SELF checkout [] " - echo " $SELF compile [-c] [] " + echo " $SELF compile [-c|-n] [] " echo " $SELF run [] " echo " $SELF each " ;;