[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gforge-commits] gforge/cronjobs/dav-svn create_svn.php,1.3,1.4
From: |
tperdue |
Subject: |
[Gforge-commits] gforge/cronjobs/dav-svn create_svn.php,1.3,1.4 |
Date: |
Wed, 15 Dec 2004 11:11:07 -0600 |
Update of /cvsroot/gforge/gforge/cronjobs/dav-svn
In directory db.perdue.net:/home/tperdue/share/dev.gforge.org/cronjobs/dav-svn
Modified Files:
create_svn.php
Log Message:
major enhancements to create_svn.php
Index: create_svn.php
===================================================================
RCS file: /cvsroot/gforge/gforge/cronjobs/dav-svn/create_svn.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- create_svn.php 15 Dec 2004 14:44:59 -0000 1.3
+++ create_svn.php 15 Dec 2004 17:11:04 -0000 1.4
@@ -22,34 +22,69 @@
// Whether to separate directories by first letter like /m/mygroup /a/apple
$first_letter = false;
+// Whether to have all projects in a single repository
+$one_repository = false;
+
+//if everything is in one repository, we need a working checkout to use
+$repos_co = '/var/svn-co';
+
+//type of repository, whether filepassthru or bdb
+$repos_type = '';
+
/*
This script create the gforge dav/svn/docman repositories
*/
-echo "Creating Groups at ". $svn."\n";
+$err .= "Creating Groups at ". $svn."\n";
$res = db_query("SELECT is_public,enable_anonscm,unix_group_name
- FROM groups WHERE status != 'P';");
+ FROM groups, plugins, group_plugin
+ WHERE groups.status != 'P'
+ AND groups.group_id=group_plugin.group_id
+ AND group_plugin.plugin_id=plugins.plugin_id
+ AND plugins.plugin_name='scmsvn'");
if (!$res) {
- echo "Error!\n";
+ $err .= "Error! Database Query Failed: ".db_error();
+ echo $err;
+ exit;
}
-system("[ ! -d ".$svn." ] && mkdir $svn");
+//
+// If using a single large repository, create the checkout if necessary
+//
+if ($one_repository && !is_dir($repos_co)) {
+ $err .= "Error! Checkout Repository Does Not Exist!";
+ echo $err;
+ exit;
+} elseif (!is_dir($svn)) {
+ passthru ("mkdir $svn");
+}
while ( $row =& db_fetch_array($res) ) {
- echo "Name:".$row["unix_group_name"]." \n";
- if ($first_letter) {
- //
- // Create the docman repository for versioning of docs
- //
- system ("[ ! -d
$svn/".$row["unix_group_name"][0]."/".$row["unix_group_name"]." ] && mkdir -p
$svn/".$row["unix_group_name"][0]."/ && $svn_path/svnadmin create
$svn/".$row["unix_group_name"][0]."/".$row["unix_group_name"]);
-
svn_hooks("$svn/".$row["unix_group_name"][0]."/".$row["unix_group_name"]);
-
addsvnmail("$svn/".$row["unix_group_name"][0]."/".$row["unix_group_name"],$row["unix_group_name"]);
+ if ($one_repository) {
+ if ($first_letter) {
+ //
+ // Create the repository
+ //
+ passthru ("[ ! -d
$repos_co/".$row["unix_group_name"][0]."/ ] && mkdir -p
$repos_co/".$row["unix_group_name"][0]."/ && $svn_path/svn add
$repos_co/".$row["unix_group_name"][0]."/");
+ passthru ("[ ! -d
$repos_co/".$row["unix_group_name"][0]."/".$row["unix_group_name"]."/ ] &&
mkdir -p $repos_co/".$row["unix_group_name"][0]."/".$row["unix_group_name"]."/
&& $svn_path/svn add
$repos_co/".$row["unix_group_name"][0]."/".$row["unix_group_name"]."/");
+ } else {
+ passthru ("[ ! -d $repos_co/".$row["unix_group_name"]."
] && mkdir -p $repos_co/".$row["unix_group_name"]."/ && $svn_path/svn add
$repos_co/".$row["unix_group_name"]);
+ }
} else {
- system ("[ ! -d $svn/".$row["unix_group_name"]." ] &&
$svn_path/svnadmin create $svn/".$row["unix_group_name"]);
- svn_hooks("$svn/".$row["unix_group_name"]);
-
addsvnmail("$svn/".$row["unix_group_name"],$row["unix_group_name"]);
+ if ($first_letter) {
+ //
+ // Create the repository
+ //
+ passthru ("[ ! -d
$svn/".$row["unix_group_name"][0]."/".$row["unix_group_name"]." ] && mkdir -p
$svn/".$row["unix_group_name"][0]."/ && $svn_path/svnadmin create $repos_type
$svn/".$row["unix_group_name"][0]."/".$row["unix_group_name"]);
+
svn_hooks("$svn/".$row["unix_group_name"][0]."/".$row["unix_group_name"]);
+
addsvnmail("$svn/".$row["unix_group_name"][0]."/".$row["unix_group_name"],$row["unix_group_name"]);
+ } else {
+ passthru ("[ ! -d $svn/".$row["unix_group_name"]." ] &&
$svn_path/svnadmin create $repos_type $svn/".$row["unix_group_name"]);
+ svn_hooks("$svn/".$row["unix_group_name"]);
+
addsvnmail("$svn/".$row["unix_group_name"],$row["unix_group_name"]);
+ }
}
}
@@ -103,6 +138,9 @@
fclose($file);
}
+if ($one_repository) {
+ passthru ("$svn_path/svn commit -m\"\"");
+}
system("chown $file_owner -R $svn");
system("cd $svn/ ; find -type d -exec chmod 700 {} \;");
system("cd $svn/ ; find -type f -exec chmod 600 {} \;");
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gforge-commits] gforge/cronjobs/dav-svn create_svn.php,1.3,1.4,
tperdue <=