[arch-dev-public] SVN to Git Migration work and POC

Morten Linderud foxboron at archlinux.org
Wed Oct 21 17:45:14 UTC 2020

We are moving to git! Hopefully...maybe...someday!

This has been a change that has been discussed for years, but progress has been
stalled because of different reasons. I decided to pick it up and work on
getting devtools and dbscripts up to speed.

It's important to note that nothing is changing in the very-near future, and
there is still A LOT left to be figured out. This email is intended for the ones
that wish to help out testing the current point of concept and come forward with
thoughts and ideas.

# tl;dr

A quick summary of the technical changes so far:

- Each package is it's own git repository located under a packages group on gitlab

- Consolidated the dbscript distinction between "community" and "packages" into "packages"
  The git repostitories still keep the namespaces "community" for TUs, and "packages" for developers.

- devtools creates .SRCINFO files upon commit

- devtools creates signed tags in the package repository

- Git tags has a seperate version scheme from pacman because git has limitations
  - pacman version: 1:1.2.3-1
  - git tag:        release-1-1.2.3-1

# Testing

## Gitlab Access

We have gotten a gitlab instance running where we can create repositories. To
help testing svn2git migration you need to access this instance. All accounts
from team-members should have been created already, and all you need to do is to
reset the password with your archweb email.


If you don't get any emails, you should contact devops.

Important to note that I need to add you to the `package-test` group on gitlab
if you wish to test the tooling. Please reply to me offlist, or poke me on

## SVN Repository to Git conversion

Anthraxx, with the great help of Ismael, has rewritten the original `gitsvn2git`
bash script to a nice python tool to help us convert git2svn packages into
standalone git repositories. When following the instructions below you can make
your own packages or play around with the script with your current packages.


## WIP Repository

Currently there is a POC server running dbscripts on svn2gittest.archlinux.org. This
server is provisioned by the devops team, with me being the administrator.

Install the WIP devtools package from my repository: https://pkgbuild.com/~foxboron/repos/devtools/
It should live alongside the current devtools package and only provide the WIP
tooling with git support.

- Ensure you can ssh into svn2gittest.archlinux.org
  - The box has been deployed with our archusers ansible role and should contain
    the same users as orion

- Navigate the package-tests project; https://gitlab.archlinux.org/packages-test

- Create a repository in either packages or community.
  - You can use any package you want. Any consistency checks in the WIP repository
    has been removed and shouldn't interfer with any packages you push.

- Work with the package as normal.

- When you commit the changes use:
  `git-extrapkg` for packages under `packages-test/packages`
  `git-communitypkg` for packages under `packages-test/community`

- When you have uploaded the package:
  ssh svn2gittest.archlinux.org "/packages/db-update"

  Note: The dbscripts tooling has been consolidated.
        There is not need for `/community/db-update`

If there are any bugs, please poke me in #archlinux-projects

The technical overview is currently being worked on in on in the archwiki:


Morten Linderud
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.archlinux.org/pipermail/arch-dev-public/attachments/20201021/0e44f31f/attachment.sig>

More information about the arch-dev-public mailing list