This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".

The branch, 6.0 has been updated
       via  62a44b5c40a4880678315185038c2ca4b6f567a6 (commit)
       via  8e847a46b5bc9eb7c7f4275651c6a02629e04df9 (commit)
      from  c0458dd5bb56738e07cb21da113d21a04b08ca86 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 62a44b5c40a4880678315185038c2ca4b6f567a6
Author: Sylvain Beucler <[email protected]>
Date:   Tue Mar 31 16:47:50 2015 +0200

    scmgit: optimize gitweb.list

diff --git a/src/plugins/scmgit/common/GitPlugin.class.php 
b/src/plugins/scmgit/common/GitPlugin.class.php
index 440c22a..a92e6fb 100644
--- a/src/plugins/scmgit/common/GitPlugin.class.php
+++ b/src/plugins/scmgit/common/GitPlugin.class.php
@@ -589,14 +589,6 @@ control over it to the project's administrator.");
        }
 
        function updateRepositoryList($params) {
-               $groups = $this->getGroups();
-               $list = array();
-               foreach ($groups as $project) {
-                       if ($this->browserDisplayable($project)) {
-                               $list[] = $project;
-                       }
-               }
-
                $config_dir = forge_get_config('config_path').'/plugins/scmgit';
                if (!is_dir($config_dir)) {
                        mkdir($config_dir, 0755, true);
@@ -636,43 +628,41 @@ control over it to the project's administrator.");
                chmod($fname.'.new', 0644);
                rename($fname.'.new', $fname);
 
+               # Optimized gitweb.list generation
+               # Useful to list all a project's repos: 
/gitweb?a=project_list;pf=project_name
                $fname = $config_dir . '/gitweb.list';
                $f = fopen($fname.'.new', 'w');
-               foreach ($list as $project) {
-                       $repos = $this->getRepositories($rootdir . "/" .  
$project->getUnixName());
-                       foreach ($repos as $repo) {
-                               $reldir = substr($repo, strlen($rootdir) + 1);
-                               fwrite($f, $reldir . "\n");
-                       }
+               $res = db_query_params("SELECT unix_group_name FROM groups
+                       JOIN group_plugin ON 
(groups.group_id=group_plugin.group_id)
+                       WHERE groups.status=$1 AND group_plugin.plugin_id=$2
+                       ORDER BY unix_group_name", array('A', $this->getID()));
+               while ($arr = db_fetch_array($res)) {
+                       fwrite($f, 
$arr['unix_group_name'].'/'.$arr['unix_group_name'].".git\n");
+               }
+               $res = db_query_params("SELECT unix_group_name, repo_name
+                       FROM groups
+                       JOIN group_plugin ON 
(groups.group_id=group_plugin.group_id)
+                       JOIN scm_secondary_repos ON 
(groups.group_id=scm_secondary_repos.group_id)
+                       WHERE groups.status=$1 AND group_plugin.plugin_id=$2
+                       ORDER BY unix_group_name, repo_name", array('A', 
$this->getID()));
+               while ($arr = db_fetch_array($res)) {
+                       fwrite($f, 
$arr['unix_group_name'].'/'.$arr['repo_name'].".git\n");
+               }
+               $res = db_query_params("SELECT unix_group_name, user_name
+                       FROM groups
+                       JOIN group_plugin ON 
(groups.group_id=group_plugin.group_id)
+                       JOIN scm_personal_repos ON 
(groups.group_id=scm_personal_repos.group_id)
+                       JOIN users ON (scm_personal_repos.user_id=users.user_id)
+                       WHERE groups.status=$1 AND group_plugin.plugin_id=$2 
AND users.status=$3
+                       ORDER BY unix_group_name, user_name", array('A', 
$this->getID(), 'A'));
+               while ($arr = db_fetch_array($res)) {
+                       fwrite($f, 
$arr['unix_group_name'].'/users/'.$arr['user_name'].".git\n");
                }
                fclose($f);
                chmod($fname.'.new', 0644);
                rename($fname.'.new', $fname);
        }
 
-       function getRepositories($path) {
-               if (!is_dir($path)) {
-                       return array();
-               }
-               if (file_exists("$path/HEAD")) {
-                       return array($path);
-               }
-               $list = array();
-               $entries = scandir($path);
-               foreach ($entries as $entry) {
-                       if (($entry == ".") or ($entry == ".."))
-                               continue;
-                       $fullname = $path . "/" . $entry;
-                       if (is_dir($fullname)) {
-                               if (is_link($fullname))
-                                       continue;
-                               $result = $this->getRepositories($fullname);
-                               $list = array_merge($list, $result);
-                       }
-               }
-               return $list;
-       }
-
        function gatherStats($params) {
                $project = $this->checkParams($params);
                if (!$project) {

commit 8e847a46b5bc9eb7c7f4275651c6a02629e04df9
Author: Sylvain Beucler <[email protected]>
Date:   Tue Mar 31 16:46:31 2015 +0200

    scmsvn: optimize updateRepositoryList

diff --git a/src/plugins/scmsvn/common/SVNPlugin.class.php 
b/src/plugins/scmsvn/common/SVNPlugin.class.php
index 5cf4620..e908a63 100644
--- a/src/plugins/scmsvn/common/SVNPlugin.class.php
+++ b/src/plugins/scmsvn/common/SVNPlugin.class.php
@@ -317,8 +317,6 @@ some control over it to the project's administrator.");
        }
 
        function updateRepositoryList(&$params) {
-               $groups = $this->getGroups();
-
                # Enable /authscm/$user/svn URLs
                $config_fname = 
forge_get_config('data_path').'/scmsvn-auth.inc';
                $config_f = fopen($config_fname.'.new', 'w');

-----------------------------------------------------------------------

Summary of changes:
 src/plugins/scmgit/common/GitPlugin.class.php |   64 +++++++++++--------------
 src/plugins/scmsvn/common/SVNPlugin.class.php |    2 -
 2 files changed, 27 insertions(+), 39 deletions(-)


hooks/post-receive
-- 
FusionForge

_______________________________________________
Fusionforge-commits mailing list
[email protected]
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits

Reply via email to