53 lines
2.2 KiB
ReStructuredText
53 lines
2.2 KiB
ReStructuredText
|
.. _repo:
|
||
|
|
||
|
Migrating repository assets
|
||
|
===========================
|
||
|
|
||
|
This document investigates the necessary methods required to migrate repository
|
||
|
assets from the source namespace on Pagure to the destination namespace on
|
||
|
Forgejo. As both Pagure and Forgejo are Git-based forges and support transmission
|
||
|
via HTTPS, that is what I will suggest using for the process.
|
||
|
|
||
|
Exporting repository assets from Pagure
|
||
|
---------------------------------------
|
||
|
|
||
|
It is crucial for the commits at the source namespace on Pagure to be signed
|
||
|
in order to reliably inform about the authors of the repository assets at any
|
||
|
given point in time. The absence of commit signatures might lead to the info
|
||
|
about the commit owners to be lost during the transfer if the authoring username
|
||
|
does not yet exist in the destination namespace.
|
||
|
|
||
|
Various artifacts like releases will not be transferred over in a 1:1 nature
|
||
|
and rather parts of it, for eg. tags and branches, that are associated with the
|
||
|
Git repository would make it to the other side. Any Git library can be made use
|
||
|
of to clone the source namespace locally with pre-migration changes as long as
|
||
|
they are well maintained by a healthy community.
|
||
|
|
||
|
|
||
|
Importing repository assets into Forgejo
|
||
|
----------------------------------------
|
||
|
|
||
|
In ideal circumstances, it is preferable to have the users associated with a
|
||
|
certain source namespace on Pagure to already have their accounts in the
|
||
|
destination namespace on Forgejo. When that cannot be made possible, the fall
|
||
|
back option is to rely on the commit signatures and using the inbuilt migration
|
||
|
option in Forgejo by providing the clone URL.
|
||
|
|
||
|
The destination namespace has to exist and the Git repository must be blank for
|
||
|
the migration tooling to work as the default behaviour is to force-push commits
|
||
|
from the local cloned copy. Alternatively, if automation is not a concern here,
|
||
|
one can even make use of the internal migration utility provided by Forgejo, to
|
||
|
move repository assets in a Git repository.
|
||
|
|
||
|
Resources
|
||
|
---------
|
||
|
|
||
|
.. image:: ../_static/p2fm_migr_menu.png
|
||
|
:target: ../_images/p2fm_migr_menu.png
|
||
|
|
||
|
.. image:: ../_static/p2fm_migr_main.png
|
||
|
:target: ../_images/p2fm_migr_main.png
|
||
|
|
||
|
.. image:: ../_static/p2fm_migr_rest.png
|
||
|
:target: ../_images/p2fm_migr_rest.png
|