Warning: | Documentation in progress. Send your angry messages to User:dgellow if you think it can make you feel better. |
Migration from gitolite to Gogs
Authors: User:dgellow, User:nemen
Date: July 2015
Reasons
< list of irrefutable arguments >
Info
- Trello card: https://trello.com/c/NSQnA7gV
- New base git URL:
ssh://gogs@git.fixme.ch:1337/<user>/<repo>
where<user>
can be a username or an organization
Git 101
< some discussions around basic commands >
Mirror a repo from foo.fixme.ch to somewhere else (github in this example)
- Create the target repository (for github, create a new repo)
- Set a new push remote
# ssh to foo ssh YOUR_USER@foo.fixme.ch -p 1337 # Navigate to the repository cd /home/gogs/gogs-repositories/YOUR_USER/YOU_REPO.git # Switch to the gogs user su gogs # Add a push remote (Don't forget the `--mirror=push` !) git remote add --mirror=push origin git@github.com:GITHUB_USER/YOUR_REPO.git # Test it git push --mirror
You will certainly need to register a Deploy Key in your github project. See https://developer.github.com/guides/managing-deploy-keys/#deploy-keys
- Check that a `post-receive` git hook is defined for you repository on git.fixme.ch
You can access it here : https://git.fixme.ch/YOUR_USER/YOUR_REPO/settings/hooks/git/post-receive The content should be something like that:
git push --mirror
- That's it. You can try with a simple commit and push.
# In your local clone touch test_mirror git add test_mirror git commit -m "test push to mirror" git push
Gogs
< description and a small guide >