From b44411fb5399f75939a57f0ccc8166d06fa8ba6f Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Mon, 1 Jun 2015 22:58:39 +0200 Subject: Use gitnamespaces for efficient storage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of using one Git repository per package, use a single large object storage for space efficiency. The refs of the individual package bases are divided using gitnamespaces(7) which allows for exposing each namespace as an independent repository easily. Also, git-serve is modified to create a branch for each package, allowing to browse the large repository with cgit. Helped-by: Florian Pritz Helped-by: Johannes Löthberg Signed-off-by: Lukas Fleischer --- scripts/git-integration/init-repos.py | 50 ----------------------------------- 1 file changed, 50 deletions(-) delete mode 100755 scripts/git-integration/init-repos.py (limited to 'scripts/git-integration/init-repos.py') diff --git a/scripts/git-integration/init-repos.py b/scripts/git-integration/init-repos.py deleted file mode 100755 index 5c4fcfe2..00000000 --- a/scripts/git-integration/init-repos.py +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/python3 - -import configparser -import mysql.connector -import os -import pygit2 -import re -import shlex -import sys - -config = configparser.RawConfigParser() -config.read(os.path.dirname(os.path.realpath(__file__)) + "/../../conf/config") - -aur_db_host = config.get('database', 'host') -aur_db_name = config.get('database', 'name') -aur_db_user = config.get('database', 'user') -aur_db_pass = config.get('database', 'password') -aur_db_socket = config.get('database', 'socket') - -repo_base_path = config.get('serve', 'repo-base') -repo_regex = config.get('serve', 'repo-regex') -template_path = config.get('serve', 'template-path') - -def die(msg): - sys.stderr.write("%s\n" % (msg)) - exit(1) - -db = mysql.connector.connect(host=aur_db_host, user=aur_db_user, - passwd=aur_db_pass, db=aur_db_name, - unix_socket=aur_db_socket) -cur = db.cursor() - -cur.execute("SELECT Name FROM PackageBases") -repos = [row[0] for row in cur] -db.close() - -for repo in repos: - if not re.match(repo_regex, repo): - die('invalid repository name: %s' % (repo)) - -i = 1 -n = len(repos) - -for repo in repos: - print("[%s/%d] %s" % (str(i).rjust(len(str(n))), n, repo)) - - repo_path = repo_base_path + '/' + repo + '.git/' - pygit2.init_repository(repo_path, True, 48, template_path=template_path) - - i += 1 -- cgit v1.2.3-24-g4f1b