mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
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 <bluewind@xinu.at> Helped-by: Johannes Löthberg <johannes@kyriasis.com> Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
34 lines
1 KiB
Text
34 lines
1 KiB
Text
WARNING! Following these upgrade instructions will reset all packages! If you
|
|
want to keep the package contents, please create a backup before starting the
|
|
upgrade process and import the source tarballs into the Git repositories
|
|
afterwards.
|
|
|
|
1. Add a field for the SSH public key to the Users table:
|
|
|
|
----
|
|
ALTER TABLE Users ADD COLUMN SSHPubKey VARCHAR(4096) NULL DEFAULT NULL;
|
|
----
|
|
|
|
2. Create a new user and configure Git/SSH as described in INSTALL.
|
|
|
|
3. Reset the packager field of all package bases:
|
|
|
|
----
|
|
UPDATE PackageBases SET PackagerUID = NULL;
|
|
----
|
|
|
|
4. Create a new table for package base co-maintainers:
|
|
|
|
----
|
|
CREATE TABLE PackageComaintainers (
|
|
UsersID INTEGER UNSIGNED NOT NULL,
|
|
PackageBaseID INTEGER UNSIGNED NOT NULL,
|
|
Priority INTEGER UNSIGNED NOT NULL,
|
|
INDEX (UsersID),
|
|
INDEX (PackageBaseID),
|
|
FOREIGN KEY (UsersID) REFERENCES Users(ID) ON DELETE CASCADE,
|
|
FOREIGN KEY (PackageBaseID) REFERENCES PackageBases(ID) ON DELETE CASCADE
|
|
) ENGINE = InnoDB;
|
|
----
|
|
|
|
5. (optional) Setup cgit to browse the Git repositories via HTTP.
|