[PATCH 1 of 2] setup-db: perform an initial repository scan as stated by the docs (issue #302)

Thomas De Schampheleire thomas.de_schampheleire at nokia.com
Fri May 4 19:46:29 UTC 2018


# HG changeset patch
# User Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>
# Date 1525204743 -7200
#      Tue May 01 21:59:03 2018 +0200
# Node ID fbdbd8183187616774d8b5c4940783b9378286b7
# Parent  6e75963503cc53f22787f6a8ca14a608f9b23c40
setup-db: perform an initial repository scan as stated by the docs (issue #302)

The documentation, as well as the prompt text inside setup-db itself, states
that the repository root location will be scanned automatically for existing
repositories.
However, this is not actually the case. Only exception is when the
'initial_repo_scan' is set to True in the ini file; in that case the scan is
done on each start of Kallithea.

Add the required repo scan logic at the end of setup-db, after setting up
the application completely (the database has only just been set up).

diff --git a/kallithea/lib/paster_commands/setup_db.py b/kallithea/lib/paster_commands/setup_db.py
--- a/kallithea/lib/paster_commands/setup_db.py
+++ b/kallithea/lib/paster_commands/setup_db.py
@@ -23,6 +23,7 @@ import os
 import sys
 import paste.deploy
 
+import kallithea
 from kallithea.lib.db_manage import DbManage
 from kallithea.lib.paster_commands.common import BasePasterCommand
 from kallithea.model.meta import Session
@@ -103,4 +104,14 @@ class Command(BasePasterCommand):
         dbmanage.populate_default_permissions()
         Session().commit()
 
+        # initial repository scan
+        kallithea.config.middleware.make_app_without_logging(
+                self.config.global_conf, **self.config.local_conf)
+        added, _ = kallithea.lib.utils.repo2db_mapper(kallithea.model.scm.ScmModel().repo_scan())
+        if added:
+            print 'Initial repository scan: added following repositories:'
+            print '\t','\n\t'.join(added)
+        else:
+            print 'Initial repository scan: no repositories found.'
+
         print 'Database set up successfully.'


More information about the kallithea-general mailing list