Fabien Potencier
8 months ago
Living on the edge
Community
14
As you might have noticed if you follow me on Twitter (which you should do as I make a lot of small announcements there), or if you monitor the Subversion activity closely, the Symfony 2 code is now hosted on Git.
First of all, let's make it clear right from the start:
The symfony 1.x branches won't be migrated to Git, ever. This post is only talking about Symfony 2, which is obviously not yet released.
So, from now on, all the development activity for Symfony 2 will take place on the new Git repository.
What is Git?
Git is a free distributed revision control system. As explained on Wikipedia, Git was initially designed and developed by Linus Torvalds for Linux kernel development.
Since then, Git has been embraced by a lot of big projects like Ruby on Rails; and recently more and more PHP projects have also made the switch (like PHPUnit or CakePHP for instance).
Apart from being fast as hell, it is also a brand new way of thinking and coding. Being distributed means that when you get a copy of a project (a "clone" in Git speak), you retrieve locally a full-fledged repository with complete history. It allows you to easily work offline for instance.
The other big advantage of Git for a project like Symfony is the ease of accepting contribution from our users. Instead of submitting patches (which you can also do), you can "fork" the project, do some work and ask a member of the core team to "pull" your work. It dramatically lowers the barrier of entry for contributing to the Symfony core. You can also easily maintain your own version of Symfony, and merge the changes easily from the master branch (easy branching and merging is yet another big advantage of Git compared to Subversion).
Symfony on Git
Git being distributed by nature, there is no need for a central repository. That being said, we host an official Git repository on Github. Nowadays, Github is probably the easiest way to participate in the collaboration loop. Everything can be done from their website with some clicks of the mouse (from forking the code to request a pull).
You can also fork one of the core team member repository, like mine, if you want to live on the edge.
Learn to love Git
Many people think that Git is too hard to understand and learn. That's not really true. Of course, you need some help to get started and more important to grasp the main concepts behind Git.
But even if finding documentation on the Internet about Git is not that difficult, it's
very difficult to find good tutorials for beginners. I was learning Git the hard
way, being frustrated more than once, until I read the excellent Pro Git
book by Scott Chacon. This book
is the best documentation I have ever read on Git and teach you everything you
need to know to master Git in a matter of hours. You can buy the printed book
or read it online for free as it is released under the GFDL license!
The Subversion Mirror
Last but not the least, if you don't want to switch to Git or if you cannot afford it because of some corporate policy, be reassured, we won't abandon you. As a user of Symfony, you can still use Subversion as the main Git repository is mirrored on the Symfony Subversion repository as well under the 2.0 branch.
Comments 
-
#1 Pablo Godel said 29 minutes later

I think this is the right move.
When I started with git a couple of years now, I found this guide very useful as I came from subversion:
http://git.or.cz/course/svn.html
-
#2 Gabriel said about 1 hour later

Great to see you move over to GIT.
It's definitely the way to go for future projects. -
#3 Peter said about 1 hour later

What I don't get about Git is... how do we handle svn:externals, the current preferred way to load/pull in plugins?
-
#4 Jamie said about 2 hours later

Git is great on my linux and mac dev machines. But using Git on windows is absolutely awful. There is no decent Git application for windows like there is for SVN, such as Subversive(for eclipse) and Tortoise SVN.
This is why I am hesitant to switch to Git. Alas.
-
#5 goofy said about 2 hours later

It would be cool if an expert could make a solid tutorial to use GIT with symfony 1.4 and plugins …
-
#6 Fabian Lange said about 2 hours later

There is no need for a tutorial for symfony 1.4 and GIT. Symfony 1.4 will not be GIT at all.
For Symfony 2, there will be a way to install plugins, but it will most likely not be the same as in symfony 1.x to address serveral shortcomings.
There will be then a good procedure for that. -
#7 Mario Rezende said about 4 hours later

Hi Fabien. When you intend to release Symfony 2.0?
-
#8 Marijn Huizendveld said about 7 hours later

Just for clarity, the online version of the Pro Git book can be found on the Pro Git website: http://progit.org/book
Nice move btw, contributing with git is so much easier:)
-
#9 Luís Sousa said about 8 hours later

On windows it can be used
msysgit:
http://code.google.com/p/msysgit/We have been usign for 2 years and works fine
-
#10 Olivier Poitrey said about 10 hours later

Congrat, you finally did it! ;)
-
#11 Freezing said about 21 hours later

#3: gitmodules are equivalent of svn:externals. they're not automatically initialized during clone/pull because their usage is slightly different.
-
#12 Matt Robinson said 6 days later

I'm with @peter. Installing Symfony through svn:externals is a major point of our project development process. As long as there's no equivalent on Git, we'll be sticking with the SVN mirror. :/
-
#13 Fabien said 6 days later

@All: as already said, the Git modules are roughly the equivalent to svn:externals. I say "roughly" because they do not work the same way. But of course we will take care this into account for the plugin system.
-
#14 Yujin said 27 days later

Like to see symfony moved to git. I found symfony when browsing github. In fact i am still in beginning, searching symfony vs zend.





