From 2164750f1e951c6985b3f9c29663bf94d16553e7 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Thu, 11 Jun 2015 13:58:43 +0200 Subject: Do not use symrefs for manually created Git refs When creating the refs for the package base branch and the HEAD ref workaround, directly use commit IDs instead of symrefs. It looks like Git cannot pack symrefs, so this is expected to improve space efficiency. Also, since the refs are now only created (or updated) when new objects are actually received, this fixes a problem with dangling refs that were created when a user initialized a repository but did not push anything. Signed-off-by: Lukas Fleischer --- git-interface/git-serve.py | 17 ----------------- 1 file changed, 17 deletions(-) (limited to 'git-interface/git-serve.py') diff --git a/git-interface/git-serve.py b/git-interface/git-serve.py index cfd3e340..9812acba 100755 --- a/git-interface/git-serve.py +++ b/git-interface/git-serve.py @@ -3,7 +3,6 @@ import configparser import mysql.connector import os -import pygit2 import re import shlex import sys @@ -78,21 +77,6 @@ def create_pkgbase(pkgbase, user): db.commit() db.close() -def setup_repo(pkgbase): - if not re.match(repo_regex, pkgbase): - die('%s: invalid repository name: %s' % (action, pkgbase)) - - repo = pygit2.Repository(repo_path) - refs = repo.listall_references() - - if not 'refs/heads/' + pkgbase in refs: - repo.create_reference('refs/heads/' + pkgbase, 'refs/namespaces/' + - pkgbase + '/refs/heads/master') - if not 'refs/namespaces/' + pkgbase + '/HEAD' in refs: - repo.create_reference('refs/namespaces/' + pkgbase + '/HEAD', - 'refs/namespaces/' + pkgbase + - '/refs/heads/master') - def check_permissions(pkgbase, user): db = mysql.connector.connect(host=aur_db_host, user=aur_db_user, passwd=aur_db_pass, db=aur_db_name, @@ -139,7 +123,6 @@ if action == 'git-upload-pack' or action == 'git-receive-pack': if not pkgbase_exists(pkgbase): create_pkgbase(pkgbase, user) - setup_repo(pkgbase); if action == 'git-receive-pack': if not check_permissions(pkgbase, user): -- cgit v1.2.3-24-g4f1b