add an example batch migration, deprecate archival (#40472) authored by anarcat's avatar anarcat
...@@ -240,54 +240,6 @@ Changes to most repositories are reported to: ...@@ -240,54 +240,6 @@ Changes to most repositories are reported to:
* Some repositories have a dedicated mailing list for commits at https://lists.torproject.org * Some repositories have a dedicated mailing list for commits at https://lists.torproject.org
### Archiving a repository
If a repository is not to be migrated or mirrored to GitLab (see
below) but just archived, use the following procedure.
4. make an (executable) `pre-receive` hook in `git-rw` with an exit
status of `1` warning about the new code location, example:
$ cat /srv/git.torproject.org/repositories/project/help/wiki.git/hooks/pre-receive
#!/bin/sh
cat <<EOF
This repository has been archived and should not be used anymore.
See this issue for details:
https://gitlab.torproject.org/tpo/tpa/services/-/issues/TODO
EOF
exit 1
4. in Gitolite, make the project part of the "Attic", for example
@@ -328,13 +328,13 @@ admin/trac/TracAccountManager "The Tor Project" = "Tor specific changes to Matth
repo project/help/infra
RW+ = @torproject-admin
- config gitweb.category = Infrastructure and Administration
-project/help/infra "The Tor Project" = "help.torproject.org infrastructure"
+ config gitweb.category = Attic
+project/help/infra "The Tor Project" = "help.torproject.org infrastructure (archived to GitLab: https://gitlab.torproject.org/tpo/tpa/wiki-infra-archive')"
repo project/help/wiki
RW = anarcat
- config gitweb.category = Infrastructure and Administration
-project/help/wiki "The Tor Project" = "help.torproject.org content"
+ config gitweb.category = Attic
+project/help/wiki "The Tor Project" = "help.torproject.org content (archived to GitLab: https://gitlab.torproject.org/tpo/tpa/wiki-archive')"
repo project/jenkins/jobs
RW = @jenkins-admins
The only downside with that approach is that a git clone will not warn
about the project redirection, but I am not sure there's a way to fix
that.
See [issue 36][] for further discussion.
### How to migrate a Git repository from legacy to GitLab? ### How to migrate a Git repository from legacy to GitLab?
Moving a repository from Gitolite to GitLab proceeds in two parts. One Moving a repository from Gitolite to GitLab proceeds in two parts. One
...@@ -321,6 +273,28 @@ This is the part you need to do as a user to move to GitLab: ...@@ -321,6 +273,28 @@ This is the part you need to do as a user to move to GitLab:
That's it, you are done! The remaining steps will be executed by TPA. That's it, you are done! The remaining steps will be executed by TPA.
Note that you can migrate multiple repositories at once by following
those steps multiple times. In that case, create a single ticket for
TPA with the before/after names, and how they should be handled.
For example, here's the table of repositories migrated by the
applications team:
| gitolite | gitlab | fate |
|----------------------------|--------------------------------------|---------|
| builders/tor-browser-build | tpo/applications/tor-browser-build | migrate |
| builders/rbm | tpo/applications/rbm | migrate |
| tor-android-service | tpo/applications/tor-android-service | migrate |
| tor-browser | tpo/applications/tor-browser/ | migrate |
| tor-browser-spec | tpo/applications/tor-browser-spec | migrate |
| tor-launcher | tpo/applications/tor-launcher | archive |
| torbutton | tpo/applications/torbutton | archive |
The above shows 5 repositories that should be migrated to GitLab and
still active, two that should be migrated and archived. There's a
third possible fate that is "destroy" in which case TPA will simply
mark the repository as inactive and will not migrate it.
#### TPA part: lock down the repository and add redirections #### TPA part: lock down the repository and add redirections
4. make an (executable) `pre-receive` hook in `git-rw` with an exit 4. make an (executable) `pre-receive` hook in `git-rw` with an exit
...@@ -394,17 +368,13 @@ That's it, you are done! The remaining steps will be executed by TPA. ...@@ -394,17 +368,13 @@ That's it, you are done! The remaining steps will be executed by TPA.
`gitweb.torproject.org.conf` (TODO: use a `RewriteMap` instead of `gitweb.torproject.org.conf` (TODO: use a `RewriteMap` instead of
copy-paste, see tpo/tpa/team#40472 for progress) copy-paste, see tpo/tpa/team#40472 for progress)
See [issue 36][] for further discussion.
### Mirroring a gitolite repository to GitLab ### Mirroring a gitolite repository to GitLab
Important: this policy is still being debated. It is not clear if any This procedure is DEPRECATED. Instead, consider [migrating the
or all repositories should be mirror or just migrated to GitLab, see repository to GitLab permanently](#how-to-migrate-a-git-repository-from-legacy-to-gitlab) or simply destroying the
[issue 36][] for the discussion on this topic. repository if its data is worthless.
[issue 36]: https://gitlab.torproject.org/tpo/tpa/team/-/issues/40472 This procedure is kept for historical purposes only.
Also consider [migrating the repository to GitLab permanently](#how-to-migrate-a-git-repository-from-legacy-to-gitlab).
1. import the Gitolite repository in GitLab: 1. import the Gitolite repository in GitLab:
...@@ -440,6 +410,56 @@ Also consider [migrating the repository to GitLab permanently](#how-to-migrate-a ...@@ -440,6 +410,56 @@ Also consider [migrating the repository to GitLab permanently](#how-to-migrate-a
In that example, the `translation.git` repository will push to the In that example, the `translation.git` repository will push to the
`tpo/web/translation` mirror. `tpo/web/translation` mirror.
### Archiving a repository
IMPORTANT: this procedure is DEPRECATED. Repositories archived on
Gitolite *still* will be migrated to GitLab, follow the [migration
procedure](#how-to-migrate-a-git-repository-from-legacy-to-gitlab) instead.
If a repository is not to be migrated or mirrored to GitLab (see
below) but just archived, use the following procedure.
4. make an (executable) `pre-receive` hook in `git-rw` with an exit
status of `1` warning about the new code location, example:
$ cat /srv/git.torproject.org/repositories/project/help/wiki.git/hooks/pre-receive
#!/bin/sh
cat <<EOF
This repository has been archived and should not be used anymore.
See this issue for details:
https://gitlab.torproject.org/tpo/tpa/services/-/issues/TODO
EOF
exit 1
4. in Gitolite, make the project part of the "Attic", for example
@@ -328,13 +328,13 @@ admin/trac/TracAccountManager "The Tor Project" = "Tor specific changes to Matth
repo project/help/infra
RW+ = @torproject-admin
- config gitweb.category = Infrastructure and Administration
-project/help/infra "The Tor Project" = "help.torproject.org infrastructure"
+ config gitweb.category = Attic
+project/help/infra "The Tor Project" = "help.torproject.org infrastructure (archived to GitLab: https://gitlab.torproject.org/tpo/tpa/wiki-infra-archive')"
repo project/help/wiki
RW = anarcat
- config gitweb.category = Infrastructure and Administration
-project/help/wiki "The Tor Project" = "help.torproject.org content"
+ config gitweb.category = Attic
+project/help/wiki "The Tor Project" = "help.torproject.org content (archived to GitLab: https://gitlab.torproject.org/tpo/tpa/wiki-archive')"
repo project/jenkins/jobs
RW = @jenkins-admins
The only downside with that approach is that a git clone will not warn
about the project redirection, but I am not sure there's a way to fix
that.
### GitHub and GitLab Mirrors implementation details ### GitHub and GitLab Mirrors implementation details
Some repositories are mirrored to https://github.com/torproject Some repositories are mirrored to https://github.com/torproject
... ...
......