autodetect whether a branch is based on master or on div0-stable; flag ./all compile -n which doesn't make clean

This commit is contained in:
Rudolf Polzer 2010-07-02 14:01:07 +02:00
parent fecd9ecd51
commit 6c11bb6513

54
all
View File

@ -434,11 +434,21 @@ case "$cmd" in
fi fi
case "$1" in case "$1" in
-c) -c)
clean=true cleandp=true
cleanqcc=true
cleanqc=true
shift
;;
-n)
cleandp=false
cleanqcc=false
cleanqc=false
shift shift
;; ;;
*) *)
clean=false cleandp=false
cleanqcc=false
cleanqc=true # version info
;; ;;
esac esac
case "$1" in case "$1" in
@ -471,28 +481,28 @@ case "$cmd" in
MAKEFLAGS="$MAKEFLAGS DP_MAKE_TARGET=mingw" MAKEFLAGS="$MAKEFLAGS DP_MAKE_TARGET=mingw"
fi fi
fi fi
enter "$d0/fteqcc" verbose enter "$d0/fteqcc" verbose
if $clean; then if $cleanqcc; then
verbose make $MAKEFLAGS clean verbose make $MAKEFLAGS clean
fi fi
verbose make $MAKEFLAGS verbose make $MAKEFLAGS
enter "$d0/data/xonotic-data.pk3dir" verbose enter "$d0/data/xonotic-data.pk3dir" verbose
if $clean; then if $cleanqc; then
verbose make $MAKEFLAGS clean verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" "$@" $MAKEFLAGS clean
fi fi
verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" "$@" $MAKEFLAGS clean
verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" "$@" $MAKEFLAGS verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" "$@" $MAKEFLAGS
enter "$d0/darkplaces" verbose enter "$d0/darkplaces" verbose
if $clean; then if $cleandp; then
verbose make $MAKEFLAGS clean verbose make $MAKEFLAGS clean
fi fi
for T in $TARGETS; do for T in $TARGETS; do
verbose make $MAKEFLAGS "$@" "$T" verbose make $MAKEFLAGS "$@" "$T"
done done
verbose "$SELF" update-maps verbose "$SELF" update-maps
;;
makebuild)
;; ;;
run) run)
if [ -n "$WE_HATE_OUR_USERS" ]; then if [ -n "$WE_HATE_OUR_USERS" ]; then
@ -648,7 +658,7 @@ case "$cmd" in
continue continue
;; ;;
*/*) */*)
;; ;;
*) *)
continue continue
;; ;;
@ -658,9 +668,23 @@ case "$cmd" in
continue continue
fi fi
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:" reportecho " Branch $ref:"
note=`GIT_NOTES_REF=refs/notes/admin-merge git notes show "$ref" 2>/dev/null || true` 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 if [ -z "$logdata" ]; then
reportecho4 "--> not merging, no changes vs master" reportecho4 "--> not merging, no changes vs master"
if yesno "Branch \"$ref\" probably should get deleted. Do it?" ''; then if yesno "Branch \"$ref\" probably should get deleted. Do it?" ''; then
@ -668,7 +692,7 @@ case "$cmd" in
reportecho4 "--> branch deleted" reportecho4 "--> branch deleted"
fi fi
else 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 if [ -z "$diffdata" ]; then
reportecho4 "--> not merging, no changes vs master, branch contains redundant history" 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 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" reportdo4 echo "$note"
reportecho4 "--> not merging, already had this one rejected before" 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 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` org=`git rev-parse HEAD`
if ! git merge "$ref" 2>&1 | tee "$t" && ! { git ls-files -u | grep ' 1 ' >/dev/null; }; then if ! git merge "$ref" 2>&1 | tee "$t" && ! { git ls-files -u | grep ' 1 ' >/dev/null; }; then
git reset --hard "$org" git reset --hard "$org"
@ -914,7 +938,7 @@ case "$cmd" in
echo " $SELF branch [<remote>] <branchname>" echo " $SELF branch [<remote>] <branchname>"
echo " $SELF branch <remote> <branchname> <srcbranchname>" echo " $SELF branch <remote> <branchname> <srcbranchname>"
echo " $SELF checkout [<remote>] <branchname>" echo " $SELF checkout [<remote>] <branchname>"
echo " $SELF compile [-c] [<client>] <options>" echo " $SELF compile [-c|-n] [<client>] <options>"
echo " $SELF run [<client>] <options>" echo " $SELF run [<client>] <options>"
echo " $SELF each <command>" echo " $SELF each <command>"
;; ;;