SCMPlugin () ; $this->name = 'scmsvn'; $this->text = 'SVN'; require_once $gfconfig.'plugins/scmsvn/config.php' ; $this->default_svn_server = $default_svn_server ; $this->enabled_by_default = $enabled_by_default ; $this->use_ssh = $use_ssh; $this->use_dav = $use_dav; $this->use_ssl = $use_ssl; $this->svn_root = $svn_root; $this->register () ; } function getDefaultServer() { return $this->default_svn_server ; } function getBlurb () { return _('
Documentation for Subversion (sometimes referred to as "SVN") is available here.
') ; } function getInstructionsForAnon ($project) { $b = _('Anonymous Subversion Access
This project\'s SVN repository can be checked out through anonymous access with the following command(s).
'); $b .= '' ;
if ($this->use_ssh) {
$b .= 'svn checkout svn://'.$project->getSCMBox().'/'.$this->svn_root.'/'.$project->getUnixName().'
';
}
if ($this->use_dav) {
$b .= 'svn checkout --username anonsvn http'.(($this->use_ssl) ? 's' : '').'://' . $project->getSCMBox(). '/' . $this->svn_root .'/'. $project->getUnixName() .'
';
$b .= _('The password is \'anonsvn\'').'
';
}
$b .= '
Developer Subversion Access via SSH
Only project developers can access the SVN tree via this method. SSH must be installed on your client machine. Substitute developername with the proper values. Enter your site password when prompted.
'); $b .= 'svn checkout svn+ssh://'._('developername').'@' . $project->getSCMBox() . '/'. $this->svn_root .'/'. $project->getUnixName().'
' ; } if ($this->use_dav) { $b .= _('Developer Subversion Access via DAV
Only project developers can access the SVN tree via this method. Substitute developername with the proper values. Enter your site password when prompted.
'); $b .= 'svn checkout --username '._('developername').' http'.(($this->use_ssl) ? 's' : '').'://'. $project->getSCMBox() .'/'. $this->svn_root .'/'.$project->getUnixName().'
' ; } return $b ; } function AdminUpdate ($params) { $group =& group_get_object($params['group_id']); if (!$group || !is_object($group)) { return false; } elseif ($group->isError()) { return false; } if ( $group->usesPlugin ( $this->name ) ) { if ($params['scmsvn_enable_anon_svn']) { $group->SetUsesAnonSCM(true); } else { $group->SetUsesAnonSCM(false); } } } // This function is used to render checkboxes below function getAdminPage ($params) { $group =& group_get_object($params['group_id']); if ( $group->usesPlugin ( $this->name ) && $group->isPublic()) { print 'c($group->enableAnonSCM()).' />'._('Enable Anonymous Access').'
'; } } function getStats ($params) { $group_id = $params['group_id'] ; $project =& group_get_object($group_id); if (!$project || !is_object($project)) { return false; } elseif ($project->isError()) { return false; } if ($project->usesPlugin ($this->name)) { list($commit_num, $add_num) = $this->getTotalStats($group_id); echo ' (SVN: '.sprintf(_('%1$s updates, %2$s adds'), number_format($commit_num, 0), number_format($add_num, 0)).')'; } } // Get the total stats for a group function getTotalStats($group_id) { $result = db_query_params (' SELECT SUM(commits) AS commits, SUM(adds) AS adds FROM stats_cvs_group WHERE group_id=$1', array($group_id)); $commit_num = db_result($result,0,0); $add_num = db_result($result,0,1); if (!$commit_num) { $commit_num=0; } if (!$add_num) { $add_num=0; } return array($commit_num, $add_num); } function getDetailedStats ($params) { global $HTML; $group_id = $params['group_id'] ; $result = db_query(' SELECT u.realname, u.user_name, u.user_id, sum(commits) as commits, sum(adds) as adds, sum(adds+commits) as combined FROM stats_cvs_user s, users u WHERE group_id=\''.$group_id.'\' AND s.user_id=u.user_id AND (commits>0 OR adds >0) GROUP BY group_id, realname, user_name, u.user_id ORDER BY combined DESC, realname; '); if (db_numrows($result) > 0) { $tableHeaders = array( _('Name'), _('Adds'), _('Updates') ); echo $HTML->listTableTop($tableHeaders); $i = 0; $total = array('adds' => 0, 'commits' => 0); while($data = db_fetch_array($result)) { echo '