Hello, The first step in migration to Git is pretty much complete. You can find the new repositories at https://github.com/gnustep/.
## What happened? Gna.org has shut down, and we have luckily had an rsynced copy of the entire Subversion history backed up. I've spent most evenings last week writing a tool[2] to execute the conversion in a safe, conversion- and history-respecting fashion. Then I've uploaded the new repositories into Github. My local count says that I've processed our history into 64 repositories. Care has been taken to have authors' names preserved and displayed in the Git fashion: that is, names and email addresses have been set. If you see an issue with the used[4] emails or names, please notify me as soon as possible while we can still rewrite history with minimum impact on everyone's work! I don't expect I'll want to do this after 1wk. As we have previously had a Git mirror, a large part of history has been previously available to other users. To make the transition less painful, Git replace refs have been generated. To fetch them, and thus have many Git base commands 'pretend' that the old hashes are the same as the newly exported hashes, please do as follows[1]: git fetch origin 'refs/replace/*:refs/replace/*' After this, if you do a 'git log master' and 'git log old', you can note that both commits have the identical 'new-style' authorship, and they have the same parent. This is an illusion, of course, done by using the replace refs in .git/refs/replace directory. If you would prefer this information as JSON, it's been uploaded[3] into the gitsvn-scripts repository. ### Are you sure the conversion was done correctly? While I do not expect significant problems with the converted repos, certainly there must have been some loss of history. Not only is all software buggy (and I've certainly had some odd crashes on behalf of git-svn during the process), but I've also only covered repositories that exist today (not those that may have existed in the past). Git also has a different idea about whether empty directories do or do not exist. This is why a backup of the Subversion history has been made available for enterprising software archaeologists. ## How to contribute? Prospecting contributors can, at this time, create Github pull requests to contribute. The process is as usual: create a fork, push into the fork, create a pull request on Github web UI. If you decide you wish not to interact with Github beyond performing a git clone, rest assured: your "git format-patch" output can be accepted on gnustep-dev@. (Please reach out before mailing them out, however, as everyone is still getting settled into the new environment. Please keep the patchsets smaller, as we are used to low volume of traffic on gnustep-dev@.) Long-standing contributors can reach out to me or Gregory with their Github usernames and get direct write access. Note that you do not /need/ this to contribute; you can create pull requests, or otherwise arrange that someone pulls from your fork. IMPORTANT: All contributors are still expected to have filed the copyright assignment paperwork with FSF. While small patches can be accepted, substantial patches will be held until we are assured that the copyright assignment has been filed. IMPORTANT: Don't forget! Set up your real name and email correctly before creating commits: git config --global user.email "s...@email.com" git config --global user.name "Some name" ### Can I edit history, and push -f? Even if you have write permissions that would allow you to push -f, I would *strongly recommend* that you refrain from doing so. *Any* edits to pushed history that's been pulled already will cause pain for other contributors. Always coordinate any edits to the history. If edits are observed, they may be reverted without a warning. Refrain from editing far into the past without a strong reason and even more coordination. ### Should I delete branches or tags? Deletion of branches and tags in Git can and will *delete history*, and confuse other contributors. Even if you have write permissions that would allow you to do this, do *not* delete branches or tags without coordination. ## Can I be notified of commits? Please subscribe to gnustep-comm...@googlegroups.com. While the emails do not contain patch content, they're still useful as notifications of activity. These notifications will be moved elsewhere, possibly reusing gnustep-...@gnu.org. Hopefully whatever hosting platform we move to will allow us to mail out pushed patches as well. ## Is this a move to Github? No. Strong and vocal feedback of the community has been heard and Github is intended as a temporary stop. We'll sort out a different hosting provider, most probably self-hosting the repositories, some time in the future. When the time comes, you will be either asked to sign up for this new service, or be given a pre-created account. It's expected that you will need to supply the SSH public keys again, just like with Github. ## Can you help me with Git or Github? I will be happy to help long-standing contributors. Otherwise, please use online documentation to learn how to contribute. If you continue having questions after having played with Git for a while, please start a new thread on discuss-gnustep@. ## Can I use Github features such as issues/wiki/pull requests/projects? ### Issues I would discourage use of anything that we cannot trivially migrate off of. Issue tracking is one of those things. Therefore, issues have been disabled on almost all of the repositories. Please notify Gregory or myself if you would like to make use of the Issues feature, but do note that, while possible, it will not be trivial to move off of Issues in future. If you do not need Issues, please continue using Savannah to file and manage bugs for the time being. ### Wiki Wiki uses markdown. We have historically not held documentation in markdown, nor has our main wiki been based around markdown. For this reason, wiki has been disabled on all the repositories. If you require wiki, please notify Gregory or myself and we will enable the feature for you. ### Pull requests Please make use of them for the time being. They are a useful feature to accept contributions. ### Projects We are not using the development methodology embodied in the Projects feature. It would not be possible for us to migrate off of it. Please do not use it. For this reason, projects have been disabled on all the repositories. If you require Projects, please notify Gregory or myself and we will enable the feature for you. ## Can I use Subversion? Github currently happens to offer Subversion access. Review their documentation for instructions. Revision numbers have, obviously, changed. Please don't rely on this being consistent and long-term-available; while we will probably continue mirroring to Github no matter where the main home is, I would not rely on this being a super-reliable offering with stable revision numbers etc. There are otherwise no plans to continue offering access to GNUstep source tree through Subversion. ### I mean, can I obtain the backup of the Subversion repos that you used? For the time being, the backup is available over: http://vcs.gs.badc0de.net/rsync_svn.gna.org_svn_gnustep.tar.bz2 This should be the file as delivered to me by Gregory Casamento over Google Drive. I do not have reason to suspect this file's integrity. I'm therefore GPG signing the sha256 signature of the file as currently stored on my local hard drive. Please verify the sha256sum after downloading this file; I have not spent time on setting up HTTPS on that machine. -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 19ea8495f9b64dd82c601cb33c4c7076a9ce61e5441e216f8544630515c72a4e rsync_svn.gna.org_svn_gnustep.tar.bz2 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCgAGBQJZPxpMAAoJEG5Ne6LZPKydBGkP/3oR5OILdBFSQklmZiOUnxhb pKqQmnnD2W2UD7uelFbcBsMQeY5ybAnQtjkFhbP0vwfmqfBkxCZvIohQjg8HUTVH XWLPlQx1mUI60NJ7+1dKKGPhPXd1MFGsWutdJ1vTCZtxjEULSzsY00I5bVy7pfh5 edQqNy0JHhR4O2qf9QJ8t9OG5Zn4F2aIG2BykMtIWNYgUOO7oh14Y6lChl5AIPzm tAPfN2zx0dRuIjJ6bdhl2oARc/NYWP0sevcSPa9WdV0z1CoLek0ujiPoSG+pYU9G r8AKSqgXVGN9NwRZJAXHgFPqPbtftqpBnFpPhKKlNlOLBvjhWPf8ZqfCjp9amU51 FSinUdF7Q8Y3Sy4bmwrQISd3LmMayquuS958yq21s/kLPAksqlUR+13NgVemYUu5 Gk2KIsa3YN7GBTYRLfLpjT6earUZMiPpttJhpX5HUr20RtGyRQ54qEisRK/2oJg0 alNijmYjpB90jhLYXvd22EdCCd9qi6TR4gABQbbBglcQIIXSULeklBkaAajA04Vc Zjih3JwxDZt+TnJ09jVsrO5kD0CPqwVYwzeQRieOJQm0LMAmk0/f+I/NOzF8gG3m 3sqdp93pICzUjvxWPqeNcQRm9WU52p9Q2+3LdWgKZy9auvx3oZVxCqPfQpLCoEi9 yWg7ZriVmPoJqd1INzqR =huJZ -----END PGP SIGNATURE----- I expect to upload this to archive.org or similar for posterity. ## Will other GNUstep-related projects (GAP, gnustep-nonfsf, gnustep website, ...) be migrated to Git? I will be happy to assist in transition if requested. If I have time, I will even poke the relevant parties to plan and coordinate a transition. However, no transition is explicitly planned at this time. ## Closing note While this has been quite a bit of effort, I hope the output is useful and that Git will both bring us into the present, and helps us with speed at which we make changes. Thanks! [1]: https://stackoverflow.com/a/20072413/39974 [2]: https://github.com/gnustep/gitsvn-scripts/tree/master/cmd/gs-svn-import [3]: https://github.com/gnustep/gitsvn-scripts/tree/497594ac2973701e572351ece2ad594dbb2f559b/matchfiles [4]: https://github.com/gnustep/gitsvn-scripts/blob/497594ac2973701e572351ece2ad594dbb2f559b/data/authors.txt _______________________________________________ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev