changeset 20158:5cc4d722151f draft

(svn r25107) -Change: be slightly more lenient with trying to detect a subversion repository in case someone has a sparse tags checkout. In that case the .svn folder misses from the $ROOT_DIR because it is in the $ROOT_DIR/.. (i.e. tags) folder
author rubidium <rubidium@openttd.org>
date Mon, 18 Mar 2013 06:18:06 +0000
parents 8da8309dd769
children 12b5b8ed3249
files config.lib findversion.sh
diffstat 2 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/config.lib
+++ b/config.lib
@@ -1012,6 +1012,12 @@
 
 	if [ -d "$ROOT_DIR/.svn" ] && [ -n "`svn help 2>/dev/null`" ]; then
 		log 1 "checking revision... svn detection"
+	elif [ -d "$ROOT_DIR/../.svn" ] && [ -n "`svn help 2>/dev/null`" ] && [ -n "`LC_ALL=C svn info $ROOT_DIR/.. | grep '^URL:.*tags$'`" ]; then
+		# subversion changed its behaviour; now not all folders have a .svn folder,
+		# but only the root folder. Since making tags requires a (sparse) checkout
+		# of the tags folder, the folder of the tag does not have a .svn folder
+		# anymore and this fails to detect the subversion repository checkout.
+		log 1 "checking revision... svn detection (tag)"
 	elif [ -d "$ROOT_DIR/.git" ] && [ -n "`git help 2>/dev/null`" ]; then
 		log 1 "checking revision... git detection"
 	elif [ -d "$ROOT_DIR/.hg" ] && [ -n "`hg help 2>/dev/null`" ]; then
--- a/findversion.sh
+++ b/findversion.sh
@@ -70,7 +70,7 @@
 # Determine if we are using a modified version
 # Assume the dir is not modified
 MODIFIED="0"
-if [ -d "$ROOT_DIR/.svn" ]; then
+if [ -d "$ROOT_DIR/.svn" ] || [ -d "$ROOT_DIR/../.svn" ]; then
 	# We are an svn checkout
 	if [ -n "`svnversion | grep 'M'`" ]; then
 		MODIFIED="2"