diff --git a/indefero/scripts/hgweb.cgi b/indefero/scripts/hgweb.cgi index f81a935..dec2b26 100644 --- a/indefero/scripts/hgweb.cgi +++ b/indefero/scripts/hgweb.cgi @@ -5,6 +5,7 @@ # Path to repo or hgweb config to serve (see 'hg help hgweb') # config = "/path/to/repo/or/config" +import os config = "/home/www/indefero/scripts/hgweb.config" # Uncomment and adjust if Mercurial is not installed system-wide @@ -17,4 +18,9 @@ config = "/home/www/indefero/scripts/hgweb.config" from mercurial import demandimport; demandimport.enable() from mercurial.hgweb import hgwebdir, wsgicgi application = hgwebdir(config) +newrepos = [] +for repo in application.repos: + if not os.path.isfile(repo[1] + "/.hide"): + newrepos.append(repo) +application.repos = newrepos wsgicgi.launch(application) diff --git a/indefero/src/IDF/Plugin/SyncMercurial.php b/indefero/src/IDF/Plugin/SyncMercurial.php index 1e44273..edcffaf 100644 --- a/indefero/src/IDF/Plugin/SyncMercurial.php +++ b/indefero/src/IDF/Plugin/SyncMercurial.php @@ -178,6 +178,7 @@ class IDF_Plugin_SyncMercurial $shortname = $project->shortname; $hgrc_file = Pluf::f('idf_plugin_syncmercurial_path').sprintf('/%s/.hg/hgrc', $shortname); + // Get allow_push list $allow_push = ''; $mem = $project->getMembershipData(); @@ -216,6 +217,7 @@ class IDF_Plugin_SyncMercurial foreach (Pluf::factory('IDF_Project')->getList() as $project) { $conf = new IDF_Conf(); $conf->setProject($project); + $hide_file = Pluf::f('idf_plugin_syncmercurial_path').sprintf('/%s/.hide', $project->shortname); if ($project->private == true){ $mem = $project->getMembershipData(); $user = ''; @@ -236,6 +238,13 @@ class IDF_Plugin_SyncMercurial $fcontent .= sprintf('AuthUserFile %s', Pluf::f('idf_plugin_syncmercurial_passwd_file'))."\n"; $fcontent .= sprintf('Require user %s', $user)."\n"; $fcontent .= ''."\n\n"; + try { + file_put_contents($hide_file, ' '); + } catch (Exception $e) { } + } else { + try { + unlink($hide_file); + } catch (Exception $e) { } } } file_put_contents($private_file, $fcontent, LOCK_EX);