X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=all;h=6e4a3638a215945ddca892e7a2733b62538778a0;hp=1f939e9e66fbee40e9d1716f9915fff87aa38d8e;hb=3b54ba8ef7e7d2f67dce2e829cb331168331bdbe;hpb=347996194d709cf4bfd4fa95fd349d977047f733 diff --git a/all b/all index 1f939e9e..6e4a3638 100755 --- a/all +++ b/all @@ -104,7 +104,7 @@ yesno() enter() { - $2 cd "$1" + $2 cd "$1" || exit 1 check_mergeconflict "$1" } @@ -199,6 +199,8 @@ case "$cmd" in verbose git config remote.origin.url "$url" verbose git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" + verbose git config remote.origin.autocrlf input + r=`git symbolic-ref HEAD` r=${r#refs/heads/} if git config branch.$r.remote >/dev/null 2>&1; then @@ -319,7 +321,7 @@ case "$cmd" in branches) for d in $repos; do cd "$d0/$d" # am in a pipe, shouldn't use enter - git branch -a -v -v | cut -c 3- | sed "s,^,$d ," + git branch -a -v -v | cut -c 3- | sed "s/^(no branch)/(no_branch)/" | sed "s,^,$d ," cd "$d0" done | { branches_list= @@ -398,7 +400,7 @@ case "$cmd" in fi rem=`git config "branch.$r.remote" || echo origin` bra=`git config "branch.$r.merge" || echo "$r"` - upstream="$rem/$bra" + upstream="$rem/${bra#refs/heads/}" if ! git rev-parse "$upstream" >/dev/null 2>&1; then upstream="origin/`repobranch "$d"`" fi @@ -424,12 +426,16 @@ case "$cmd" in if [ -z "$CC" ]; then export CC=gcc fi - elif [ x"`uname`" = x"Darwin" ] && [ x"`uname -r`" = x"10.3.0" ]; then - TARGETS="sv-debug sdl-debug" - # AGL is broken in Snow Leopard, so default to SDL. - if [ x"`uname -r`" != x"10.3.0" ]; then - TARGETS="$TARGETS cl-debug" - fi + elif [ x"`uname`" = x"Darwin" ]; then + case "`uname -r`" in + ?.*) + TARGETS="sv-debug cl-debug sdl-debug" + ;; + *) + # AGL cannot be compiled on systems with a kernel > 10.x (Snow Leopard) + TARGETS="sv-debug sdl-debug" + ;; + esac export CC="gcc -I$PWD/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks/SDL.framework/Headers -F$PWD/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks" else TARGETS="sv-debug cl-debug sdl-debug" @@ -453,22 +459,37 @@ case "$cmd" in cleanqc=true # version info ;; esac - if [ -n "$1" ]; then + if [ $# -gt 0 ] && [ x"$1" = x"" ]; then + # if we give the command make the arg "", it will surely fail (invalid filename), + # so better handle it as an empty client option + BAD_TARGETS=" " + shift + elif [ -n "$1" ]; then + BAD_TARGETS= + TARGETS_SAVE=$TARGETS TARGETS= for X in $1; do case "$X" in sdl) - TARGETS="sdl-debug $TARGETS" + TARGETS="$TARGETS sdl-debug" ;; glx|agl|wgl) - TARGETS="cl-debug $TARGETS" + TARGETS="$TARGETS cl-debug" ;; dedicated) - TARGETS="sv-debug $TARGETS" + TARGETS="$TARGETS sv-debug" + ;; + *) + BAD_TARGETS="$BAD_TARGETS $X" ;; esac done - shift + if [ -n "$TARGETS" ]; then # at least a valid client + shift + else # no valid client, let's assume this option is not meant to be a client then + TARGETS=$TARGETS_SAVE + BAD_TARGETS= + fi fi if [ -z "$MAKEFLAGS" ]; then if [ -f /proc/cpuinfo ]; then @@ -500,12 +521,18 @@ case "$cmd" in verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" "$@" $MAKEFLAGS enter "$d0/darkplaces" verbose + if [ x"$BAD_TARGETS" = x" " ]; then + echo "Warning: invalid empty client, default clients will be used." + fi if $cleandp; then verbose make $MAKEFLAGS clean fi for T in $TARGETS; do verbose make $MAKEFLAGS "$@" "$T" done + for T in $BAD_TARGETS; do + echo "Warning: discarded invalid client $T." + done verbose "$SELF" update-maps ;; @@ -705,13 +732,13 @@ case "$cmd" in git push origin :"${ref#refs/remotes/origin/}" reportecho4 "--> branch deleted" fi - elif [ -n "$note" ]; then + elif [ -z "$branch" ] && [ -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 "$realbase" 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 --no-ff "$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" @@ -723,7 +750,7 @@ case "$cmd" in 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" + 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/}"