X-Git-Url: http://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=all;h=fcefc94e1e82e87d846997722ca44d19abea64b6;hp=e18ca0d81bf2d961891ddaa81da31f9e82c221fa;hb=165b5c3178c590310f43d8cbacfed2dc4e2e2e3e;hpb=3024963186e170b08774558b2643780198d13381 diff --git a/all b/all index e18ca0d8..fcefc94e 100755 --- a/all +++ b/all @@ -402,11 +402,13 @@ case "$cmd" in bra=`git config "branch.$r.merge" || echo "$r"` upstream="$rem/$bra" if ! git rev-parse "$upstream" >/dev/null 2>&1; then - upstream="`repobranch "$d"`" + upstream="origin/`repobranch "$d"`" fi logdata=`git log --color "$upstream".."$r"` - if yesno "Push \"$r\" in $dv?" 'echo "$logdata" | less -r'; then - verbose git push "$rem" HEAD + if [ -n "$logdata" ]; then + if yesno "Push \"$r\" in $dv?" 'echo "$logdata" | less -r'; then + verbose git push "$rem" HEAD + fi fi if [ x"$submit" = x"-s" ]; then case "$r" in @@ -432,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 @@ -469,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 @@ -615,29 +627,7 @@ case "$cmd" in 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() @@ -667,68 +657,108 @@ case "$cmd" in HEAD|master) 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"` - diffdata=`git diff --color --find-copies-harder --ignore-space-change "$base"..."$ref"` + logdata=`git log --color "$realbase".."$ref"` if [ -z "$logdata" ]; then reportecho4 "--> not merging, no changes vs master" - elif [ -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 + if yesno "Branch \"$ref\" probably should get deleted. Do it?" ''; then git push origin :"${ref#refs/remotes/origin/}" reportecho4 "--> branch deleted" fi - elif [ -n "$note" ]; 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" - org=`git rev-parse HEAD` - if ! git merge "$ref" 2>&1 | tee "$t"; 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 - git reset --hard "$org" - GIT_NOTES_REF=refs/notes/admin-merge git notes edit -m "Compile failed:$LF`cat "$t"`" "$ref" - reportdo4 cat "$t" - reportecho4 "--> compile failed" - elif ! yesno "Still merge \"$ref\" into `git symbolic-ref HEAD` of $d? Maybe you want to test first."; then - git reset --hard "$org" - git notes edit "$ref" - note=`GIT_NOTES_REF=refs/notes/admin-merge git notes show "$ref" 2>/dev/null || true` - reportdo4 echo "$note" - reportecho4 "--> test failed" - else - case ",`repoflags "$d"`," in - *,svn,*) - # we do quite a mess here... luckily we know $org - git pull # svn needs to be current - git rebase -i --onto master "$org" - git svn dcommit --add-author-from - git reset --hard "$org" - ;; - *) - git push origin HEAD - ;; - esac - reportecho4 "--> MERGED" - if yesno "Delete original branch \"$ref\"?"; then + else + 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 git push origin :"${ref#refs/remotes/origin/}" reportecho4 "--> branch deleted" fi - fi - else - GIT_NOTES_REF=refs/notes/admin-merge git notes edit "$ref" - note=`GIT_NOTES_REF=refs/notes/admin-merge git notes show "$ref" 2>/dev/null || true` - if [ -n "$note" ]; then + elif [ -n "$note" ]; then reportdo4 echo "$note" - reportecho4 "--> rejected" + 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 "$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 -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" + reportecho4 "--> compile failed" + elif ! yesno "Still merge \"$ref\" into `git symbolic-ref HEAD` of $d? Maybe you want to test first."; then + git reset --hard "$org" + git notes edit "$ref" + note=`GIT_NOTES_REF=refs/notes/admin-merge git notes show "$ref" 2>/dev/null || true` + if [ x"$note" = x"del" ]; then + git push origin :"${ref#refs/remotes/origin/}" + reportecho4 "--> test failed, branch deleted" + elif [ -n "$note" ]; then + reportdo4 echo "$note" + reportecho4 "--> test failed" + else + reportecho4 "--> test failed, postponed" + fi + else + case ",`repoflags "$d"`," in + *,svn,*) + # we do quite a mess here... luckily we know $org + git fetch # svn needs to be current + git rebase -i --onto origin/master "$org" + git svn dcommit --add-author-from + git reset --hard "$org" + ;; + *) + git push origin HEAD + ;; + esac + reportecho4 "--> MERGED" + if yesno "Delete original branch \"$ref\"?"; then + git push origin :"${ref#refs/remotes/origin/}" + reportecho4 "--> branch deleted" + fi + fi else - reportecho4 "--> postponed" + GIT_NOTES_REF=refs/notes/admin-merge git notes edit "$ref" + note=`GIT_NOTES_REF=refs/notes/admin-merge git notes show "$ref" 2>/dev/null || true` + if [ x"$note" = x"del" ]; then + git push origin :"${ref#refs/remotes/origin/}" + reportecho4 "--> branch deleted" + elif [ -n "$note" ]; then + reportdo4 echo "$note" + reportecho4 "--> rejected" + else + reportecho4 "--> postponed" + fi fi fi reportecho "" @@ -796,13 +826,13 @@ case "$cmd" in ;; release-engine-linux32) "$SELF" release-compile linux32 \ - 'CC="gcc -g -Wl,--hash-style=sysv" DP_MODPLUG_STATIC_LIBDIR=$HOME/modplug-i386/lib DP_LINK_TO_LIBJPEG=1 LDFLAGS_LIBJPEG="$HOME/jpeg7/lib/libjpeg.a" CFLAGS_LIBJPEG="-I$HOME/jpeg7/include"' \ + 'CC="gcc -g -Wl,--hash-style=sysv" DP_MODPLUG_STATIC_LIBDIR=$HOME/darkplaces-deps/lib DP_LINK_TO_LIBJPEG=1 LDFLAGS_LIBJPEG="$HOME/darkplaces-deps/lib/libjpeg.a" CFLAGS_LIBJPEG="-I$HOME/darkplaces-deps/include"' \ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.linux32' \ debug 'darkplaces-glx:Xonotic/xonotic-linux-linux32-glx darkplaces-sdl:Xonotic/xonotic-linux-linux32-sdl darkplaces-dedicated:Xonotic/xonotic-linux-linux32-dedicated' ;; release-engine-linux64) "$SELF" release-compile linux64 \ - 'CC="gcc -g -Wl,--hash-style=sysv" DP_MODPLUG_STATIC_LIBDIR=$HOME/modplug-x86_64/lib DP_LINK_TO_LIBJPEG=1 LDFLAGS_LIBJPEG="$HOME/jpeg7/lib/libjpeg.a" CFLAGS_LIBJPEG="-I$HOME/jpeg7/include"' \ + 'CC="gcc -g -Wl,--hash-style=sysv" DP_MODPLUG_STATIC_LIBDIR=$HOME/darkplaces-deps/lib DP_LINK_TO_LIBJPEG=1 LDFLAGS_LIBJPEG="$HOME/darkplaces-deps/lib/libjpeg.a" CFLAGS_LIBJPEG="-I$HOME/darkplaces-deps/include"' \ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.linux64' \ debug 'darkplaces-glx:Xonotic/xonotic-linux-linux64-glx darkplaces-sdl:Xonotic/xonotic-linux-linux64-sdl darkplaces-dedicated:Xonotic/xonotic-linux-linux64-dedicated' ;; @@ -825,6 +855,9 @@ case "$cmd" in release-finish) # version numnber and stuff like that ;; + release-qc) + verbose make -C Xonotic/data/xonotic-data.pk3dir FTEQCC="$d0/Xonotic/fteqcc/fteqcc.linux32" FTEQCCFLAGS_WATERMARK= + ;; release-buildpk3-transform-raw) dir=$1 ;; @@ -892,6 +925,7 @@ case "$cmd" in "$SELF" release-prepare "$SELF" release-maps "$SELF" release-finish + "$SELF" release-qc "$SELF" release-pack "$SELF" release-engine ;; @@ -904,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 " ;;