Mastering Perl sources now in Git

brian_d_foy on 2008-08-28T20:44:57

I've moved my Mastering Perl repository from SVN to git (following this guide), and now I've put it on Github.

You can clone the repo with:

% git clone git://github.com/briandfoy/mastering-perl.git


Or you can browse it on github (which sometimes gives a server error, so just keep trying).

Github is popular with the Ruby folks, but we can't let them have all of the fun. I converted my CVS repos and put them there, and now I'm working through my SVN repos. (And, lazy web, is there a good way to fragment an SVN repo into many git repos? I have my main SourceForge account with most of my modules in the same repo, but now I want those to be in separate git repos, one per module).

And, now that I've looked at Ohloh again, I see that they support git repos.


Just curious...

sigzero on 2008-08-28T21:29:46

Why did you choose git?

Re:Just curious...

brian_d_foy on 2008-08-28T21:47:09

I'm not into the religious stuff and I'm content for people to use whatever works for them.

First, Randal forced me to use git. He got into it very early, and at Stonehenge we use it for anything new. For the Mastering Perl stuff, Allison previously hosted a subversion repo for me on her personal box since she was the book editor, but she moved all of her stuff to a hosted solution. I had the repo sitting on my local box and wanted to make it public, so I changed it to git which I was already using.

Second, I really, really want offline commits. I know about svk and so on, but I'm not really interested in svn anymore. I'm already using Git at work, and it's easier for me to use.

Third, I really, really hate subversion. From a mere user perspective it's decent except for not having real tag, but on the admin side it's a pain in the ass for me. I like Mac OS X, and I've never had a pleasant time setting up subversion. It's getting better: it only took me half a day to install it today after I cleaned out the borked binary distro and compiled from source three times to take care of all the build errors. :) Also, I can never remember how to tell svn to ignore files, for instance, and I like that git has the CVS style .gitignore. After using svn for awhile, I think it was a step back from CVS and I lost more than I gained. That's just me and how I work, though. Other people have to make their own judgements.

Lastly, SourceForge isn't doing it for me anymore. I have most of my source code in an svn repo there, but the real attraction to their service was the compile farm, which is now gone. I'm not too keen on Google Code yet.

I'm not telling anyone to change to git. As with any tool, use whatever works for you.

Re:Just curious...

sigzero on 2008-08-29T00:55:59

Thanks...like I said I was only curious. I respect your opinion and you gave it. :-)

Re:Just curious...

grink on 2008-08-29T08:12:55

I've been moving my stuff to github as well. It has a nice interface without a lot of hassle.

I wish it had some sort of issue tracker, though.
Google Code *does*, and apparently, you can tell Google Code to advertise github as your repository.
I may have to take advantage of that feature in the future, unless I find a better issue tracker.

Splitting one svn into multiple git repos

melo on 2008-08-28T23:21:38

Hi,

do it as a two step process.

First import the svn into git using git svn. Given that this is a one-shoot move to git, you should use the --no-metadata switch also.

Then, from that inicial repo, clone one repo for each module and use the git filter-branch command.

If you go to the man page here (http://www.kernel.org/pub/software/scm/git/docs/git-filter-branch.html) search for "git filter-branch --subdirectory-filter" and you should find the solution.

I've used git svn several times, and git filter-branch a couple of times, and both work.

If you more help, ping me at melo cpan.org.

Re:Splitting one svn into multiple git repos

brian_d_foy on 2008-08-30T00:32:43

Okay, that was pretty easy. Now I just have to figure out how to make the filtered repos smaller. I think they are still carrying around a lot of meta baggage because the filtered repo is still about 3/4 the size of the full repo, and that's pretty bad for a huge repo.

Thanks :)

Re:Splitting one svn into multiple git repos

Aristotle on 2008-08-30T02:28:53

git gc --aggressive && git repack -a -d -f --depth=250 --window=250