This is great advice. Thanks Mauricio. I found an article that gives some tips on how to accomplish the tag thing you mentioned, as well as some other clean-ups.
http://thomasrast.ch/git/git-svn-conversion.html Based on what you've said, it sounds like we need to do at least a couple things. 1. Have committers sign up for github accounts so the history can be mapped nicely. Unless more mass user actions come up, it seems like a good idea to start a separate urgent thread to have committers provide their details for the conversion. 2. Write a script that will convert your repository appropriately. Is it safe to assume that you'll be able to pull any last minute changes from SVN into your repo? I propose that we set up a GIT repository to store the script to be used for the conversion. We can then refine it and learn a bit along the way. If nobody else does it, I'll do these things tomorrow to get the ball rolling. Patrick Earl On Tue, Aug 2, 2011 at 1:46 PM, Mauricio Scheffer <[email protected]> wrote: > It's not really *required* to do this mapping, it's only very convenient so > that github can create links from every commit to the committer account, and > also for future statistics. > > Another thing to decide is what to do about tags. Git-svn models tags as > separate commits (because each svn tag creates a new revision), but that's > not how git usually handles tags. You could go over each tag and redefine > it, e.g. instead of the 3.1.0GA tag being here : > https://github.com/mausch/NHibernate/commit/a971c20f9be652a59bc467d8e61bbad2f2928ef3 > as a separate commit, it would be here: > https://github.com/mausch/NHibernate/commit/3c2d5fdbeeebc87f089bac2306792b8ef4459a81 > which is the commit before that. Clone the repository and use gitk to better > visualize this. > Also, tags in git can be lightweight, annotated or even cryptographically > signed if you're really paranoid about people redistributing code with > edited tags. > > -- > Mauricio > > > On Tue, Aug 2, 2011 at 4:27 PM, Mauricio Scheffer > <[email protected]> wrote: >> >> Right now, on my github mirror all committers have names autogenerated by >> git-svn. For example: "patearl >> <patearl@d2eaab8a-a80d-0410-be94-99ecdb4ea5df>". >> Git filter-branch should be used to change all commits and map those >> autogenerated names to the actual github accounts (e.g. the email used for >> https://github.com/patearl ), otherwise all commits are pretty much >> anonymous, detached from their actual owners. >> Here's a sample script that does this for a single user: >> http://progit.org/book/ch6-4.html#changing_email_addresses_globally >> The filter-branch docs also has some examples about this: >> http://www.kernel.org/pub/software/scm/git/docs/git-filter-branch.html >> >> Cheers, >> Mauricio >> >> >> On Tue, Aug 2, 2011 at 4:00 PM, Patrick Earl <[email protected]> wrote: >>> >>> On Tue, Aug 2, 2011 at 10:35 AM, Mauricio Scheffer >>> <[email protected]> wrote: >>> > If NHibernate decides to move to git, you might be interested in my >>> > github mirror: https://github.com/mausch/NHibernate , which contains >>> > of course the whole history, is up to date, and has all tags and >>> > branches. >>> >>> That sounds great Mauricio. Thanks for the heads up. >>> >>> > All that would be needed to complete the migration is mapping the >>> > committers to their proper github accounts (which isn't hard, just >>> > some filter-branches, doesn't take too long). So the slowest part >>> > (migrating the actual commits from SVN to git) is already done. >>> >>> Can you suggest what you mean here to do the mapping? It sounds like >>> you have a very clear idea of what needs to be done. >>> >>> > Of course, tooling support is a separate issue. I don't know what >>> > tools NHibernate currently uses that depend on SVN (could be nant for >>> > tagging, TeamCity, JIRA integration, ...) >>> >>> TeamCity has built-in GIT support, so that shouldn't be a problem. >>> The releases haven't even been using the SVN revision for the version >>> number, so we're more or less okay on that front. We don't have JIRA >>> set up with any VCS integration right now, so integrating would only >>> be an improvement. Do we have some sort of script or anything to run >>> tagging on release? The release process is a mystery to me >>> personally. :) >>> >>> Patrick Earl >> > >
