[darwinbuild-changes] [542] trunk

source_changes at macosforge.org source_changes at macosforge.org
Sun Aug 9 12:58:17 PDT 2009


Revision: 542
          http://trac.macosforge.org/projects/darwinbuild/changeset/542
Author:   wsiegrist at apple.com
Date:     2009-08-09 12:58:14 -0700 (Sun, 09 Aug 2009)
Log Message:
-----------
Add support for subversion working copies as project sources

Modified Paths:
--------------
    trunk/darwinbuild/darwinbuild.common
    trunk/darwinbuild/darwinbuild.in

Added Paths:
-----------
    trunk/darwinxref/plugins/branch.tcl

Modified: trunk/darwinbuild/darwinbuild.common
===================================================================
--- trunk/darwinbuild/darwinbuild.common	2009-08-09 08:18:55 UTC (rev 541)
+++ trunk/darwinbuild/darwinbuild.common	2009-08-09 19:58:14 UTC (rev 542)
@@ -107,6 +107,27 @@
 CURLARGS=${CURLARGS:-}
 
 ###
+### Checkout or update a project from subversion repository
+###
+function CheckoutOrUpdate() {
+	local destination="$1"
+	local branch="$2"
+	local master_sites="$3"
+
+	for master_site in $master_sites ;
+	do
+	    if [ ! -d "$destination/.svn" ]; then
+		echo "Checking out working copy"
+		mkdir -p "$destination"
+		svn co "$master_site/$branch" "$destination" && break
+	    else
+		echo "Updating working copy"
+		svn up "$destination" && break
+	    fi
+	done
+}
+
+###
 ### Download a .tar.gz file
 ###
 function Download() {

Modified: trunk/darwinbuild/darwinbuild.in
===================================================================
--- trunk/darwinbuild/darwinbuild.in	2009-08-09 08:18:55 UTC (rev 541)
+++ trunk/darwinbuild/darwinbuild.in	2009-08-09 19:58:14 UTC (rev 542)
@@ -445,6 +445,13 @@
 	exit 1
 fi
 
+# check for the project being subversion based
+branch=$($DARWINXREF branch $projnam)
+if [ "$branch" != "" ]; then
+	# using subversion implies nosource
+	nosource="YES"
+fi
+
 ###
 ### Download the sources,
 ### and any applicable patches.
@@ -459,11 +466,11 @@
 		filename="$project.tar.gz"
 	fi
 
-	Download "$SourceCache" "$filename" "$($DARWINXREF source_sites $projnam)"
+	Download "$SourceCache" "$filename" "$($DARWINXREF source_sites $projnam)"	    
 
 	patchfilenames=$($DARWINXREF patchfiles $projnam)
 	for p in $patchfilenames; do
-	    Download "$SourceCache" "$p" "$($DARWINXREF source_sites $projnam)"    
+		Download "$SourceCache" "$p" "$($DARWINXREF source_sites $projnam)"    
 	done
 
 	### If we are doing a -fetch, stop here.
@@ -535,6 +542,11 @@
 	fi
 fi
 
+if [ "$branch" != "" ]; then
+	mkdir -p "$REAL_SRCROOT" "$REAL_OBJROOT" "$REAL_SYMROOT" "$REAL_DSTROOT"
+	CheckoutOrUpdate "$REAL_SRCROOT" "$branch" "$($DARWINXREF source_sites $projnam)"
+fi
+
 # you can avoid registering patches in the DB by using "xnu-792--patches.tar.gz"
 if [ -r "$SourceCache/$project-patches.tar.gz" -a "$nosource" != "YES" ]; then
 	tar xzf "$SourceCache/$project-patches.tar.gz"

Added: trunk/darwinxref/plugins/branch.tcl
===================================================================
--- trunk/darwinxref/plugins/branch.tcl	                        (rev 0)
+++ trunk/darwinxref/plugins/branch.tcl	2009-08-09 19:58:14 UTC (rev 542)
@@ -0,0 +1,3 @@
+DBPluginSetName branch
+DBPluginSetType property.project
+DBPluginSetDatatype string
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20090809/22b6a7da/attachment.html>


More information about the darwinbuild-changes mailing list