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
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 [<remote>] <branchname>"
echo " $SELF branch <remote> <branchname> <srcbranchname>"
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 each <command>"
;;