From 9a1d8fa74dfa2d8493decac1dfd02fd5a5624a8c Mon Sep 17 00:00:00 2001 From: clime Date: Apr 23 2018 19:58:04 +0000 Subject: section 'Renaming your repository' added into tips&tricks in docs --- diff --git a/doc/usage/tips_tricks.rst b/doc/usage/tips_tricks.rst index 831376a..c85e505 100644 --- a/doc/usage/tips_tricks.rst +++ b/doc/usage/tips_tricks.rst @@ -77,3 +77,112 @@ Examples: ~~~~~~~~~ https://pagure.io/SSSD/sssd/issues?status=Open&search_pattern=review%3ATrue https://pagure.io/pagure/issues?status=Open&search_pattern=tags%3Aeasyfix + +Renaming your repository +------------------------ + +1. Create a new repository with desired name. In this howto, we will + be using ``move-repo-new`` name for the new repository and ``move-repo`` + for the original repository. + +2. Go to 'Settings' page of your new repository, find 'Hooks' + section and Activate 'Pagure requests'. Do the same for 'Pagure tickets'. + Without this step, you won't be able to successfully import tickets or PRs. + +3. In your original locally cloned repository, run: + +:: + + git remote add move-repo-new ssh://git@pagure.io/move-repo-new.git + git push -u move-repo-new master + + + This will push the code into your new repository. + +4. If you have documentation enabled in the original project, enable (activate) it + also in the new project and run: + +:: + + git clone ssh://git@pagure.io/docs/move-repo.git move-repo-docs + cd move-repo-docs + git remote add move-repo-new-docs ssh://git@pagure.io/docs/move-repo-new.git + git push -u move-repo-new-docs master + +5. Continue by cloning issues (tickets) of the original repo if you have issues enabled there: + +:: + + git clone ssh://git@pagure.io/tickets/move-repo.git move-repo-tickets + +6. Now you need to do something really weird, in the cloned tickets repos, there will be files like: + +:: + + 3b3860de09524f848583fb39293f58ba + 8b61af2f4125458dbd1bfa2918a08d26 + +Those files contain tickets metadata. You need to change the name of each file +Change some character in the filename string for each file to some other character. + +Then commit the changes. + +7. Push the changes to the remote tickets repository: + +:: + + git remote add move-repo-new-tickets ssh://git@pagure.io/tickets/move-repo-new.git + git push -u move-repo-new-tickets master + +You should be now receiving email with subject '[Pagure] Issue import report' to the email address +you have set in Pagure. Upon successful import, the issues will appear in Pagure's GUI. + +8. Now clone pull requests of the original repository: + +:: + + git clone ssh://git@pagure.io/requests/move-repo.git move-repo-requests + +9. Again, you will need to do some manual modifications and for PRs they are much more tedious. + Keep your focus sharp here. + +Individual PRs are again stored in files: + +:: + + 30206d385ef14316a364169c7cf024f7 + +First change the filename (arbitrarily as before for issues). Now, go to +https://apps.fedoraproject.org/datagrepper/raw?topic=io.pagure.prod.pagure.project.new and find out ID +of the newly created project. Then open the renamed file and replace project "id" field +value with the ID of your new project (the one you have just found out from datagrepper). + +Note that in the file there might be "id" field also for the parent of the fork from which the Pull Request +was issued (which will be of the same value as the "id" you have just replaced) and also for the fork itself. +Keep that untouched. + +Next, substitute name of the old (original) project with the new project name. Again, keep the values +for the fork and its parent unchanged if the fork data are present. + +Finally, change the "uid" value to the new filename (in other words, to the current name of the file +you are modifying). + +Finally, commit all changes you have made. + +10. Push the changes to the remote requests repository: + +:: + + git remote add move-repo-new-requests ssh://git@pagure.io/requests/move-repo-new.git + git push -u move-repo-new-requests master + +You might get some fatal errors like: + +:: + + remote: fatal: Path 'dda269a9f6524daebf9257530cfe7d6f' does not exist in 'HEAD' + +You can just ignore it. + +This should be all. If you encouter Pagure Database errors about Unique constraint violated, +you are in trouble. If you cannot get out of it, you will need to bump id of the pull request.