Rails is moving from SVN to Git

Posted by David April 02, 2008 @ 09:39 PM

We’ve been preparing for Rails to move the official source repository from Subversion to Git for some time now and it seems that it’ll happen over the next week or so. The premiere will happen alongside the official launch of Github.

The move will also mean that we’re going to be switching ticket tracking to Lighthouse. So now both our repository and ticket tracking will be powered by Rails applications, which is a nice bonus treat.

When the move happens, we’ll freeze the existing Subversion repository and the Trac installation. Both will live on for a long time to come, but will be entirely deprecated. This means that your existing svn:externals will not break, but if you want the latest edge, you’ll have to get it from the new git repository.

So now is a great time to learn more about Git in anticipation of this move. I recommend starting with the Git for SVN’ers crash course.

Posted in Edge | 95 comments

Comments

  1. Stephen Touset on 02 Apr 21:56:

    Best of luck with the move.

    Sucks for us Mercurial folk, though. Looks like git will likely win in the Ruby community.

  2. Steve V on 02 Apr 21:58:

    Why not do like many other projects and just write to the existing svn repo on commit so that that option is still there? All patches and such would just have to be written against git checkouts.

  3. Scott Chacon on 02 Apr 21:58:

    I would also really recommend Tv’s Git for Computer Scientists, which explains what Git is really doing when you run those commands. I think it helps with the learning curve overall if you understand what Git is actually doing.

    http://eagain.net/articles/git-for-computer-scientists/

    Git is very much unlike SVN/CVS/Perforce/etc and learning it from that perspective is often confusing.

    For those of you Peepcode fans, there is an excellent screencast for sale on Git here:

    http://peepcode.com/products/git

    And I did one as well about using Git specifically to manage and deploy Rails apps:

    http://jointheconversation.org/railsgit

    Scott

  4. Chris on 02 Apr 22:05:

    Super awesome. Rails has been moving so fast lately. Very encouraging – this will only help it move faster.

  5. ctran on 02 Apr 22:37:

    It’s about time… now people can stop making their own git mirror :-)

  6. Luis Lavena on 02 Apr 22:41:

    @Stephen Touset: the Rails community. Mercurial and even bazaar is quite popular among rubysts than Git…

  7. Tim Dysinger on 02 Apr 22:47:

    Awesome. Good news.

  8. Tim Dysinger on 02 Apr 22:51:

    Here’s my how-to install on OS X Leopard

    http://dysinger.net/2007/12/30/installing-git-on-mac-os-x-105-leopard/

  9. HG on 02 Apr 22:53:

    Why Git and not Mercurial ? What’s all the Git hoopla about ?

  10. ironman on 02 Apr 22:58:

    I have tried to clone the official Git repository on Windows with the Windows native git (the Mingw one), and I wasn’t able.

    This means that Rails will now officially ditch Windows users.

  11. dirtyhand on 02 Apr 23:01:

    Only edge rails, people can still use ruby gems to install releases of rails

  12. Marc Jeanson on 02 Apr 23:08:

    Although I do fully agree with punting SVN and moving to a distributed SCM, I don’t think that Git is the best solution for Rails. Git is fantastic no doubt, but its windows support is no where near Mercurial. Considering that Ruby on Rails is a platform independent framework, it would make sense to use something that plays nice for everybody.

    I’m not a windows user, but I’m sure there are still a few of them out there :)

    Also, the Mercurial command set is much more closer to SVN than Git, so the learning curve should be smaller.

    Downsides to Mercurial: No peepcode show. And hghub.com isn’t ready. But guess what, turns out you don’t need either to get this working.

    I’d highly recommend reconsidering your decision to move to Git and consider Mercurial as an alternative.

  13. Scott on 02 Apr 23:21:

    You Mercurial people make me laugh.

  14. jon jacobs on 02 Apr 23:22:

    this might be handy for folks: http://code.google.com/p/git-osx-installer/

  15. Christian on 02 Apr 23:22:

    And why is that allstar, i mean Scott?

  16. DHH on 02 Apr 23:24:

    Git works on Windows through Cygwin. A more native implementation is also coming shortly. Also, all releases of Rails will be available through gems of course. And I think we’ll set up something that can automatically build beta gems from git too.

    The decision is made, though. There are lots of different alternatives, but we picked Git.

  17. Patcito on 02 Apr 23:35:

    Why no use Gitorious.org instead? it’s free and opensource just like rails and it even has a great cli client with guess what? a rubygem generator for git:

    http://gitorious.org/projects/gitorious-cli/repos/mainline/commits/805e042646eb6c8bb2581c3dc90e7d8dd9e48e71

  18. DHH on 02 Apr 23:37:

    Gitorious.org looks great too. I’m sure someone will eventually setup a mirror there. But for the main repo we picked Github because we liked what we saw there more.

  19. Matt on 03 Apr 00:20:

    BTW, the msysgit project works just fine on Windows—and you get some useful unix-esque shell utilities along with it too.

    Just use this one (the earlier one has some bugs):

    http://msysgit.googlecode.com/files/Git-preview20080301.exe

  20. Ryan on 03 Apr 00:20:

    Has anyone considered Windows users? Git doesn’t work very well on Windows yet.

  21. James Harrison on 03 Apr 00:20:

    I have to echo the concerns of many concering Windows git support. As for the move from Trac/SVN, well, quite frankly I’d rather Rails stayed on it’s own hosted solutions rather than outsourcing everything. Lighthouse isn’t suited to large-scale projects at all, which is where Trac really excels, with it’s integrated support for svn. Git and Mercurial may be all wonderful, all-singing, all-dancing solutions but the support and tools to work with G/M are far from mainstream, complete, or usable.

  22. Jeremy McAnally on 03 Apr 00:28:

    Er, why not quit complaining about Windows functionality and fix it, or a more effective solution might be to start a Pledgie to pay someone to fix it? I realize it’s not great at this point, I realize it’s important to you, and I realize that it seems like a big problem, but it’s very close and with a little cash someone could fix the Windows problem really easily.

    As a matter of fact, if someone sets it up, I’ll donate to it (and I don’t even use Windows).

  23. AkitaOnRails on 03 Apr 00:32:

    Awesome news! I’ve waiting for this to happen!

    I’ve been evangelizing Git in Brazil for a few months now and it seems that I was spot on.

    Thanks a lot for the effort.

  24. Lawrence Pit on 03 Apr 00:50:

    I think those Windows users complaining haven’t actually tried git. I have been using git on a Windows XP machine for a few months now, and it works fine.

  25. AkitaOnRails on 03 Apr 00:50:

    By the way, about the Windows thing, Git is not on par with SVN regarding tools support. It reminds me on 2003 when I migrated my clients repositories to SVN. The tools support at the time was much more mature with CVS. SVN was very buggy. Visual Studio support was broken with TortoiseSVN (I patched it at the time).

    All of these didn’t see a good excuse for not going to SVN and I was right. SVN got traction and now it is very well supported.

    Git is much more stable and robust than SVN was in 2003. The tool support is not there yet, but it also don’t feel like a good excuse to not using Git. By migration Rails to Git it has the potential to also motivate good Windows programmers to tackle this problem and improve it.

    If we ever said “why use Linux? Windows support with 3rd parties are much better”. Don’t see like a good excuse either. Instead of sitting over the problem, this move is a very bold one and I am sure it will be well recognized.

    Kudos to the Rails Core to, again, blowing off the ceilings and leading things forward.

  26. LeMarquis on 03 Apr 00:51:

    The benefits of git better be fucking huge for all the hassle this is going to create for many people, including those unfortunate enough either (a) working on Windows (b) not kewl enough to have received a github invite.

    It’s a big call to abandon an established SCM with good penetration, decent interfaces across multiple platforms, and large user base, for one that hasn’t.

  27. zomg on 03 Apr 00:53:

    zomg windows!

  28. Mike Donaghy on 03 Apr 01:00:

    LeMarquis ….i’ve got 3 github invites …. if you want one …. drop me a line at mike+github@mikedonaghy.org

  29. LeMarquis on 03 Apr 01:03:

    @Akita

    You are a brave trailblazer. And you are right that it’s going to motivate people to improve Git support.

    But – for my own sake – I want RoR to be a mature and stable stack. This move undermines that, and makes me nervous about the whole direction of RoR.

  30. LeMarquis on 03 Apr 01:06:

    @Mike

    That’s a very kind offer, thank you.

  31. Jeremy McAnally on 03 Apr 01:10:

    LeMarquis: I guess you’d better stop using Linux for ANYTHING while you’re at it…

  32. nap on 03 Apr 01:12:

    This is great news. Thanks to everyone involved for making it happen!

  33. Pratik on 03 Apr 01:13:

    Also, Github provides tar.gz files for every repository. So Windows people can happily use that, in case they can’t get Git to work.

  34. Kurt Schrader on 03 Apr 01:16:

    @LeMarquis

    How does this have anything to do with Rails being mature and stable? If anything, moving to Git will make it easier for people to push patches up into the main tree.

    As for the stability of Git itself, Linux is managed in it, and they’ve never had a problem.

  35. LeMarquis on 03 Apr 01:53:

    @Kurt

    My point is not that Git is deficient. I know Linux is managed using Git. “Foo uses Bar” is good news for Foo and Bar for many values of Foo and Bar.

    By “stable”, I mean resistant to sudden major change. This is a fairly sudden and major change, no?

    By “mature”, I mean developed to the point where most changes are incremental – unless there is a pressing need for development. This is not a incremental change, and I cannot see a pressing need for it (if there is one, please tell me).

  36. Kurt Schrader on 03 Apr 01:53:

    I’ve posted a list of links for people getting started with Git here:

    http://kurt.karmalab.org/articles/2008/04/02/rails-is-moving-to-git-helpful-git-links-for-new-git-users

  37. Ryan Sandridge on 03 Apr 02:14:

    I’d be a +1 for Mercurial, except I know Rails is “opinionated software”, and the opinion has been made. History has proven there is no need for further complaining.

  38. Sed Zhaw on 03 Apr 02:15:

    “I’ll add one more thing to the people reading this: I mean business when I say I’ll take anyone on who thinks Git is better than Bzr. You think you can take me, I’ll pay to rent a boxing ring and beat your fucking ass legally. Remember that I’ve studied enough Bzr + Python to be deadly even though I’m old, and I don’t give a fuck if I kick your mother fucking ass or you kick mine. You don’t like what I’ve said, then write something in reply but fuck you if you think you’re gonna talk to me like you can hurt me.”

  39. DHH on 03 Apr 02:17:

    LeMarquis, you do realize that the use of Git only impacts the people who work on providing patches for Rails, yes? That Git is not a system that’s required to run Rails, no?

    Thus, the choice of version control should be one that most benefits the people who use it. In other words, the people who develop patches for Rails. For this constituency, there’s overwhelming support for Git and Windows is a very minority platform.

  40. Tim Dysinger on 03 Apr 02:24:

    Anybody who has done their homework knows that Git rocks over other distributed tools. SVN sucks. I have been waiting for Rails to move off of it. /me Applauses

    Read about the internal formats of Git vs XXX vs XXX here -> http://keithp.com/blogs/Repository_Formats_Matter/

    1 – Git is fast. Others are not. 2 – Git has been in use for years on big projects. It’s not new or “unstable” as some of you have been posting above. 3 – Git is efficient – it’s storage format is awesome 4 – Git has native in-place branch switching 5 – Git’s auto merging is awesome

    Having tried all the newest source code tools, I chose Git 6 months ago and haven’t looked back once.

    It’s going to take time for those of you not using git. Don’t cry. Just take a deep breath and start using it today.

    Now having said that, I will have darcs, mercurial, subversion and bzr installed on my machine for a long time. There are just too many projects out there using them. Get used to it. The days of one source-control to rule them all are over.

  41. david on 03 Apr 02:35:

    git+ruby/rails = coolness

  42. Christian Romney on 03 Apr 02:37:

    +1 msysgit for the Windows folks. It works fine. Mercurial and Git are very similar. If I may offer some free advice to the Mercurial zealots: do more marketing! Linus’ Google Tech Talk probably has more to do with people choosing Git that Geoff’s screencast (even though I think he did a great job).

  43. ironman on 03 Apr 02:50:

    “+1 msysgit for the Windows folks. It works fine.”

    If crashing is considered fine, then yes.

    But anyway, the decision has been made and it is obvious that Windows developers weren’t considered as beneficial members of the Rails community.

  44. Stephen Waits on 03 Apr 03:09:

    msysgit is hardly mature; though it does mostly work. I’d say it’s painful – much moreso than SVN (Tortoise, etc.).

    In fact I’ve poked around on the msysgit mailing list and I’d say the developers, ummm, are well.. I don’t have a lot of faith in it. Not that I’m gonna help, git is a horrible mess of C garbage – I’ve looked.

    But still, I guess it’s pretty cool, bandwagons and all. It really will only affect a core group of developers, and hey, you can always send patches in anyway.

    TRAC’s a piece of garbage so ditching that is definitely nice.

  45. Let's just say it Windows sucks not the people running windows on 03 Apr 03:10:

    It’s not that they think Windows Developers aren’t considered beneficial members. It’s that they think Windows is not a beneficial platform.

    I moved off Windows 10 years ago. I can’t even imagine what it’s like to write code on that aweful platform. There is just a serious lack of tools once you leave *nix.

    Do this: Delete Windows and install something useful like Ubuntu or Fedora. Then issue one of these two commands:

    apt-get install git-core yum install git-core

    There – you are in business and officially beneficial.

  46. Boulevaird on 03 Apr 03:14:

    What’s with this Windows crap? Windows is the reason there are so many crap installations out there. Tutorials with stuff like “C:\rake..”—ugh. If you are using Windows for development, you are pulling down the Rails community.

  47. Chris Mear on 03 Apr 04:03:

    If you say things like, “If you are using Windows for development, you are pulling down the Rails community”, then you’re the one pulling down the Rails community. Stop being so blinkered.

  48. ironman on 03 Apr 04:06:

    I don’t think that Windows is crap because Git doesn’t support the platform.

    Rubinius choose Git too. It seems that the whole Ruby community tends to choose Git. The reason is clear, Git is good, and most of the developers are using Linux or OSX.

  49. AkitaOnRails on 03 Apr 04:15:

    If there are any brazilians/portuguese reading this, inspired by David’s move I wrote a massive-micro-tutorial here:

    http://www.akitaonrails.com/2008/4/3/micro-tutorial-de-git

    I showcase the common use case for casual developers that want to consume projects off from Github, but not necessarily be actively contributing patches. It should help some people understand what makes Git great.

    @LeMarquis, I think David’s response is enough but for answer’s sake, this is a spot on move. No questions. This will actually ensure the future of Rails development.

    Another thing: Rails – and any other major open source project – will hardly ‘stabilize’ in the way you’re saying: just small incremental bug fixes. The Rails community is adding and removing and refactoring galore. This ensures that Rails gets the best of the best out there. Just take a look at the future Rails 2.1 that’s about to come. Not only dozens of bug fixes but also tons of new and desirable features are coming up. If Rails ever becomes ‘stable’ as you say, that’s when the community will give up on it. A ‘stable version’ is nothing more than a frozen point in time from the repository, and that’s it. We have to be prepared for newer releases. I would hate to be stuck in Apache 1.x when we now have Apache 2.x for example.

    Ruby support under Windows only shows one thing: not enough annoyed developers on Windows. Meaning that if Ruby/Rails was really critical on Windows, we would have support for it by now. Same thing for Git. Developers usually develop under nix like environments, unless they’re doing sandboxed C# or Java development.

    Even if some developers do Windows, they will eventually want to deploy it under *nix for robustness, safety, scalability, etc -sake.

    Not saying that it is not important to push more Windows support, but it will eventually come if it becomes necessary. The Bazaar model is ‘scratch your own itch’, people need to have an itch to begin scratching it. At Ruby Inside there was a long run of discussion around Ruby support on Windows. It’s a good sign. Luis Lavena is the pinnacle of Ruby for Windows and he is doing a great job, but he would really appreciate some more help.

    For me, working with Rails means staying in the Mac, but that’s me. Lots of people are developing Rails under Linux. There’s even lot’s of Windows developers doing Rails, usually under a Cygwin environment. And I have to say that Git runs fine under Cygwin.

    Back then I was very very used to have TortoiseSVN or Eclipse’s subclipse plugin. Since I moved to a *nix environment I have to say that I am more than happy using the shell and command lines. Now, even when I am under Windows I tend to open the command prompt.

    For the Mercurial/Bzr/Darcs folks, you really need more marketing. Although I still think Git has the edge on its robust architecture. Git’s killer app? git-svn. And no, I haven’t seen anyone of those doing the same things as nicely as Git-svn does it. Another thing: performance. Being written in C – and having a robust and clever architecture – is critical for command line tools that has to run very fast. I wouldn’t use Git if I had to way 1 second for each command I type. Another reason I don’t use JRuby for rake, script/ or other one-liner, though I think it is amazing for server-side deployment.

    Github did it right as well: making it even more trivial to collaborate on projects. They really nailed it. Right now, everybody is playing catch-up with Git, Git-svn and Github, no question about that.

  50. vegai on 03 Apr 05:19:

    Although I prefer mercurial slightly more, git and mercurial are so alike that trying to figure out which is superior is just a waste of time. It’s better to just quickly choose one (even randomly) and stick with it.

  51. W. Andrew Loe III on 03 Apr 05:20:

    Fantastic news, I look forward to some crazy branches for special applications!

  52. Henry Turner on 03 Apr 05:42:

    What’s wrong with SVN?

  53. Marc on 03 Apr 05:51:

    By marketing you mean ignorant fanboys who follow whatever the hot thing is? You sir are definitely correct. Mercurial needs more of that.

    I suppose the huge manual that Hg has and awesome command line help aren’t enough. Developers now a days need to be told why something is good instead of figuring it out for themselves.

    Git is awesome, I’m not saying it isn’t. I still think Hg would fit better in this case, but since windows is in the minority here it really doesn’t matter.

    Getting a DSCM in there is the most important point, and I’m glad Rails is going in that direction.

  54. Max Lapshin on 03 Apr 06:16:

    Perhaps, You’d change information on http://dev.rubyonrails.org/ ?

  55. Dejan Dimic on 03 Apr 06:32:

    This is good news.

    To add my personal experience to common knowledge: git is working on Windows (XP, Vista) as well (almost) as on Linux. There ware some issues about svn support on Windows but nowadays it all work almost identically.

    We can not compare Linux shell with windows kindergarten version but if you using cygwin version than … On my Windows I have both version cygwin and msysGit and they work like charm.

    One more thing to add, the new version of RedMine (project collaboration tool written on rails – http://redmine.org) supports Git repositories too.

  56. Sed Zhaw on 03 Apr 06:50:

    My Bear Stearns Employees Need A Job!

  57. Koz on 03 Apr 07:21:

    We’ll be adding new versions of the rake tasks for freeze:edge and friends which will work off zip files / tarballs. Removing the dependency on SVN.

    As for mercurial, I personally use it for a few projects but it has two problems:

    1. As of a few months ago it can’t actually import our history
    2. It doesn’t have fast local branches.

    Both of those are reasonably significant.

    Another factor which led to the choice of git was that a good portion of submitters already use git, as demonstrated by their diff files.

  58. Fred on 03 Apr 07:34:

    I develop on XP and deploy on Linux. My main use for git is preserve my own stuff. Some plugins are installed by using svn commands to fetch from remote hosts.

    I suppose that sooner or later I’ll need to use git commands to haul down some plugin. As long as that works (and gem works), it’s okay with me.

    Sometimes GUI tools don’t help much. When I installed TortoiseSVN I saw the menu had ‘commit’ and ‘update’. For the life of me I could not figure out which one copied from my working directory to the repository, and which one copied the other way. The docs didn’t say either. And I wasn’t about to experiment with my source code!

  59. Garry on 03 Apr 07:41:

    I’m very excited to see this happening. This is a great move.

    Koz makes a good point, fast local branches is very deep in the git mantra. As Linus says, you have to be able to branch cheaply, or else people won’t branch.

    Tv (eagain.net) demo’d Git to me and ever since then I haven’t thought of using SVN for anything serious.

    Git is in baby.

  60. Luke Noel-Storr on 03 Apr 07:50:

    So, I currently use svn;externals, and whilst I understand this won’t break, it will effectively stop working.

    What would I need to do to seamlessly keep up to date with Edge Rails once it has moved to git? Will the only seamless solution be for me to switch my repository to git too? (which will be annoying until all the plugins I keep up to date with using svn:externals are also moved to git).

  61. Joran Jessurun on 03 Apr 08:28:

    What is wrong with svn? And why just not wait a bit with git until windows support is better. Some people here must use windows systems for development and currently I do not enjoy using git on it.

  62. Sed Zhaw on 03 Apr 08:37:

    I’m actually doing fine with the whole (Bears collapse) thing. It is bizarre having an entire bank blow up under my feet right after I walk in the door, but so was having hundreds or thousands of web sites use my software with nobody interested in hiring me.

    Do not contact me about a job unless it is CTO of a shit kicking company!

  63. Fritten on 03 Apr 08:49:

    Damn, Rails has been moving to fast…

    Good Luck!

  64. Hugh on 03 Apr 09:29:

    This is awesome news, Github seriously rocks and this is going to make rails so much better and up to date. I’ll be forking, fixing and sending pull requests every time I find something wrong with rails rather than just monkey patching for myself.

  65. Daniel on 03 Apr 09:46:

    I hope it’s true that Git support is now better on Windows. I tried it when all the hype in the ruby/rails communities started, and msysgit was not even close to useful.

    Cygwin is not Windows. Cygwin support is not Windows support. The move to Git on Windows is not just a move to Git for anyone interested in edge, it’s the introduction of a whole new environment to use just one tool.

    And not only people who submit patches use the repo. It’s also the quickest way for any developer to get those patches. DHH is perfectly free to take wich ever path he likes with his project, but there is no need to pretend that nobody lose on this move.

    For some of us there is no choice of operating system. It’s decided way up in the organization, and we can’t “just delete it” as some troll said.

  66. Zeno Davatz on 03 Apr 09:48:

    Well done, Ruby on Rails! We have been using GIT with our Ruby-Source for a long time now! See http://scm.ywesee.com

    Best Zeno

  67. she on 03 Apr 11:06:

    to those guys that are annoyed at windows:

    the proper place is to push pressure on the git folks to improve their windows support.

  68. Switcher on 03 Apr 12:40:

    Windows users, please stop complaining about others using the right tool for their jobs and just start doing the same.

    You can get rid of this shit and use something serious. Really. Others are doing it and nobody ever looks back. So you can do it, too.

  69. Gobi on 03 Apr 12:44:

    I never used git but it looks good. Can it handle japanese encoded files such as EUC_JP and Shift_JIS. Also its Eclipse plugin looks is in early stage of development.

  70. he on 03 Apr 12:58:

    @she: no it is not.

    The proper move is to stop using Windows for development of RoR apps.

    If you’re forced to use it by someone “way up in the hierarchie” you most probably should have a serious talk with that someone and just quit your job if they don’t listen.

    Ruby on Rails support for Windows should probably simply be deprecated so that people “way up in the hierarchies” start to listen … or switch back to Java and .NET

  71. Zargony on 03 Apr 13:00:

    Great news. I personally switched my projects to git as well a while ago and I’m very satisfied with it. Hopefully it’ll also make life easier for the Rails team.

    I posted some thoughts for people who can’t or don’t like to use git in my blog at http://zargony.com/2008/04/03/rails-moves-to-git-no-more-svn

  72. John on 03 Apr 13:44:

    At first i thought this was a stupid thing to do. SVN has so much market share in open source, it’s off the charts.

    Personally, i’ve got rails and other programming to do 12 hours of the day, i don’t have the time to waste with another vcs.

    but then i got to thinking htis is only for programmers who are modifying the source, so i guess i don’t care so much.

    as long as i can upgrade rails through a gem, i’m fine.

  73. Paul on 03 Apr 13:58:

    a good portion of submitters already use git, as demonstrated by their diff files

    How do you know they’re not using `hg diff—git`?

  74. DHH on 03 Apr 14:13:

    @he, you’re so off the mark that it isn’t even funny. We could be using stone tables to send diffs back and forth fore core development and it still wouldn’t matter to end users of Rails.

    This step will actually make the user experience of Rails even less dependent on the SCM as we’ll be using tar.gz archives for freezing edge.

    As far as cherry-picking patches that have not yet been applied to edge, this again is SCM independent. You can always just grab the diff and apply to your local copy of Rails.

    Pulling out your Nostradamus suite is dressing for the wrong occasion. But I guess that’s what happens when people see a brand new bikesheed with freshly applied paint. Hey, it should be yellow!!

    So please calm down. Take a deep breath and think to yourself: Maybe I wouldn’t have picked Git for my personal project, but what matters for Rails core development is what the majority of core developers would find pleasurable. This will lead to more contributions, which in turn will lead to a better framework. A framework that I get to use for free. What a great bargain!

  75. AkitaOnRails on 03 Apr 14:24:

    @he and @she and everybody with the same opinion. The correct thing to do is neither ‘putting pressure’ on the Git guys nor giving up on Windows.

    The correct thing is to contribute back. Maybe neither of you are Windows programmers able to contribute to Git. Just remember that we are an open source community. People are complaining a lot about things you’re gettting for free.

    If you were paying some IBM or BEA for lacking of support, that’s ok, you would be paying them!

    Git and Rails are open source projects! It is clear from the reactions here and throughout the community that moving Rails to Git was a most expected and desirable move. Lot’s of people were eager to have this kind of support to be able to contribute even more.

    It is very very easy to complain, it is another thing entirely to do something about it.

    Sometimes the fixes are easy. One example, I never was a good C++ programmer, but back in 2003, TortoiseSVN created the default .svn sub-folders around my project. Problem was: Visual Studio, at the time, complained about dot starting folders. So what do I did? I downloaded their source files, scratched my head for a while and figure out how to make it create underscore started sub-folders instead of the dot ones. Then I contributed a patch back to the project and it ended up accepted by the tortoise guys. Very small thing, but made tortoise that much friendly to Visual Studio.

    Even TortoiseSVN is not Subversion. Someone felt the need to have such a tool and created it. I would feel very ashamed to criticize them saying ‘Make it more friendly for me’. Instead I first decided to see if I could help somehow.

    Otherwise, why would I use open source tools? Just because they are ‘cheap’? C’mon.

  76. HG on 03 Apr 19:11:

    Romney writes: “Linus’ Google Tech Talk probably has more to do with people choosing Git”

    Opposite for me. Linus’ caustic style, not to mention the 140 commands that come with the distribution, turned me off to Git.

    I would think there’s more of a repulsion among Rails core to use Mercurial because it’s written in Ruby’s competing language, Python.

    Still, Mercurial works for me and it integrates with TextMate seamlessly.

  77. Jeremy Kemper on 03 Apr 19:38:

    There are more comments on version control for Rails development than on actual Rails development (see the recent 2.1 preview post). Amazing ;)

  78. arch on 03 Apr 20:23:

    HG’s architecture is good. GIT’s is bad.

  79. Jon Gretar on 03 Apr 21:08:

    Meah…

    Never gotten the distributed SCM need. Looked at both Git and Mercurial and it just seemed to complicate a thing that should be simple. But I guess it has something to offer larger productions such as rails.

    I’m sticking with SVN for all my needs. Keep it simple I say. :)

  80. James Harrison on 03 Apr 22:32:

    Windows users most often are not users by choice but by requirement. When I’m not writing Rails apps, I’m working with 3DS Max and Adobe Creative Suite, using FL Studio for audio production, and so on. I play EVE-Online and enjoy other games. Quite a lot of this is either Windows-only or poorly supported on Mac or Linux. Let’s not even go into hardware on the Mac being a bit pricey compared to building your own PC, and then you’re into the realms of hackintoshes (I do have a PC-ified OSX disk but rarely use it because of compatability of apps). Let’s not forget that most Windows users started years back and just can’t afford to move filesystems. I’ve got nearly 3 terabytes of NTFS drives- are you going to buy me 3TB more so I can move everything to HFS+?

    Moving from Windows is not the way to approach this problem. It’s a problem, and it’s one which has several solutions. Foremost is the decision of the Rails core team to move to something which is well known to have poor Windows support. Quite frankly, if that’s their attitude, they’ve not got my developer’s mentality- if it’s not broken, why change it? If there’s an overwhelming reason to change it should be assessed to decide if it’s worth it- weigh up the negatives and the positives. As it is I think the Windows Rails community has been severely overlooked, and this is reflective of a general attitude which says ‘You’re working on Windows, we don’t care’ to the casual onlooker.

    That said, it is indeed the Git community’s problem, not the Rails community’s problem that Git has poor Windows support, and it being an open project there can be some discussion on that. But I believe the problem may lie at the Git community itself- why would a SCM designed originally for the Linux kernel really cater for Windows users from the first place? Mercurial and Subversion may not be quite so feature-rich but they’re developed as SCMs for everyone, not as a topical SCM for a particular job.

    Personally I would like to see more dialougue occuring between the core team and community on topics like this. Rash and completely impulsive decisions like this one only lead to problems.

  81. DHH on 03 Apr 22:50:

    James, nobody is telling you what platform to run on. Git runs on Windows as earlier indicated. If it doesn’t run as well as you’d like, you can always install a free Linux image under dual boot or under a virtual machine.

    Also, you don’t even need Git to contribute to Rails! If you get the latest version of the repository (in zip or tar.gz), you can use whatever tools you like as long as you produce a diff.

    Rails core being hosted on Git has zero barring on what you use for your own projects. Just consider it value-add if you’re a heavy contributor. You can continue to do whatever you like, but if you use Git some things become easier.

    Anyway, at this point we’re beating a dead horse.

  82. AkitaOnRails on 03 Apr 23:04:

    This topic became so long I don’t even know where we drifted away from the main news. So let me try to summarize:

    • Fact 1: Rails is moving to Git, great news
    • Fact 2: Rails is moving to Lighthouse, another great news
    • Fact 3: Git will make the development workflow that much more easy, awesome news
    • Fact 4: Git runs on Windows, Linux and OS X. Your mileage may vary
    • Fact 5: It is not in question which DSCM to use. Several other Ruby related projects are already at Github. Merb, Prototype, Scriptaculous, Capistrano. It just makes sense to have Rails itself in the same location.
    • Fact 6: Don’t like Git, use the tarballs. Linux was maintained with tarballs for several years. In Linus own words “I’d much rather use tarballs than CVS”.
    • Fact 7: It is a zero-configuration hassle for most non-contributors. Most will use gem install rails anyway, and this is DSCM agnostic.
    • Fact 8: Same thing goes for plugins. script/plugin will continue to install from svn sources as well as git sources. No hassles here too.
    • Fact 9: As always, we can resort to tarballs if we need to.
    • Fact 10: Whatever OS you prefer/use, this will not affect aggravate anyone’s situation, and for real collaborators, will make things inherently easier.

    Cheers

  83. Tim Harper on 03 Apr 23:33:

    And… Git has a REALLY COOL TextMate Bundle, in my opinion :)

    http://github.com/timcharper/git-tmbundle/

  84. Tim Harper on 03 Apr 23:35:

    @she – Dude (or dudette), the “git folks” are not your slaves. If you’re a windows user, and want git on your OS, the proper thing to do is go and see what you can do to help the projects out there.

  85. Luke Noel-Storr on 04 Apr 07:40:

    Hi,

    I’d just like to ask again what the alternative to svn:externals will be for seamlessly keeping up-to date with Edge? (or, if there is no seamless alternative, the one with the least friction would be good to know).

  86. DHH on 04 Apr 13:39:

    Luke, you can use braid to manage dependencies. Which is a better way that doesn’t overburden the public svn repository with requests every time you checkout your source code.

  87. Paul Watson on 04 Apr 19:40:

    It’s worth pointing out that François is working on a new version of Piston. The current version (1.9.1) will nicely import git or svn hosted plugins into a git or svn hosted project.

    http://blog.teksol.info/2008/3/23/piston-1-9-1-import-goodness

  88. Shawn Oster on 05 Apr 00:51:

    Yawn

    Now we get to watch a nice big fat religious war erupt over which SCM is the One True Bestest Ever OMFG! Source Control system out there.

    You’ll get a massive amount of drones switching to git instantly because Rails is, with zero understanding of it’s pros and cons but backed by an amazing amount of blind stupid faith in whatever the Rails team does. On the other hand you’ll get the anti-change faction that will fight tooth and claw against this and defame anyone that even thinks of switching from their SCM of choice.

    Truth is most SCMs out there will serve most projects just fine and it’s not until you get to the edge cases like a Linux kernal or Rails that you really start to even come close to pushing a SCM’s boundaries.

  89. HG on 05 Apr 14:40:

    @Oster the Yawner

    You seem to contradict yourself. If Rails is an edge case pushing Git’s boundaries then why shouldn’t the drones just follow?

    After all, who would better know Git’s limitations than the core Rails team, and if they’ve sanctioned it for their work, then why wouldn’t the community accept it?

    The best thing Linus did was make a compelling case against SVN. So there is a great deal of droneism toward Git from those reacting against SVN. In his video talk, I never heard Linus make a compelling case that Git is the best DVCS. He only repeats the claim, like a mantra, but he never gives comparisons to prove it.

    I agree with you that people ought to not take Linus’ claims at face value and should check out the competition. Otherwise how else will best-of-breed ever be established. Problem is that when you start using one solution and it works, then it’s too time consuming to switch to another solution, just to be objective. I doubt that Rails core did such an experiment and doubt others would also.

    The best I can hope for is that Rails core doesn’t ram Git down my coding practices throat and that good translators start emerging to allow facile switching between the DVCS’s. Who knows, maybe when Rails core hits that wall with Git one day, they may need it.

  90. david on 06 Apr 10:28:

    GIT—> Perfect choice, no doubt…

    I use Windows with Linux virtual machine, but that’s shitty and I’ll be getting a Mac soon enough… Right tools for the right job ;)

    THANK YOU

  91. mbavio@gmail.com on 07 Apr 20:27:

    This decision is not the end of the world, only RoR core is moving to Git, that doesnt mean that everybody has to move to Git.

    BTW, I have three invitations available to GitHub, if you are interested, send me a mail.

    Cheers, mbavio

  92. brian on 08 Apr 13:18:

    Why the switch? Was development using Subversion really that painful?

  93. Rodrigo on 08 Apr 13:59:

    I don’t understand why some are ranting about the status of git on windows: it works really without any problem from cygwin. And if you are complaining about the switch, then you may never have tried git.

    What I would be really worried about is the status of Ruby and Rails on windows: it works but it is infinitely slower than on my linux or mac boxes (and these boxes are years older than my win PC). The startup time seems the most problematical, but the overall execution time is really slower.

    Just try a simple “strace rails—version 2> rails.strace”: the output is unbelievably long (like 20 MB). More than 90% of the trace are made of the same system call.

  94. regeya on 10 Apr 19:51:

    Well, shoot, put me in with the Mercurial crowd too. And I have indeed tried git. Tried to like it. I honestly tried.

  95. Brent on 17 Apr 13:42:

    I created a t-shirt celebrating the move at http://gitrails.spreadshirt.com . Maybe we could get Threadless to done as well.