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
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
rm -rf "$patchdir"
;;
admin-merge)
- if [ "$#" = 1 ]; then
- set -- "${1%%/*}" "${1#*/}"
- fi
- for d in $repos; do
- enter "$d0/$d" verbose
- git rev-parse "$1/$2" || continue
- # 1. review
- {
- git log HEAD.."$1/$2"
- git diff HEAD..."$1/$2"
- } | less
- if yesno "Merge \"$1/$2\" into `git symbolic-ref HEAD` of $d?"; then
- git merge "$1/$2"
- if "$SELF" compile && yesno "Still merge \"$1/$2\" into `git symbolic-ref HEAD` of $d? Maybe you want to test first."; then
- git push origin HEAD
- git push "$1" :"$2"
- else
- git reset --hard HEAD@{1}
- fi
- fi
- done
- ;;
- admin-merge-2)
+ branch=$1
t=`mktemp`
report=""
reportecho()
continue
;;
*/*)
- ;;
+ ;;
*)
continue
;;
esac
+ if [ -n "$branch" ]; then
+ if [ x"$branch" != x"${ref#refs/remotes/origin/}" ]; then
+ continue
+ fi
+ fi
+ case "$base" in
+ master)
+ realbase=$base
+ ;;
+ *)
+ l0=`git rev-list "$base".."$ref" | wc -l`
+ l1=`git rev-list 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
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
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"
GIT_NOTES_REF=refs/notes/admin-merge git notes edit -m "Merge failed:$LF`cat "$t"`" "$ref"
reportdo4 cat "$t"
reportecho4 "--> merge failed"
- elif ! "$SELF" compile 2>&1 | tee "$t"; then
+ elif ! "$SELF" compile -n 2>&1 | tee "$t"; then
git reset --hard "$org"
GIT_NOTES_REF=refs/notes/admin-merge git notes edit -m "Compile failed:$LF`cat "$t"`" "$ref"
reportdo4 cat "$t"
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>"
;;