On 08/08/11 07:37, Richard Riley wrote:
> David Soria Parra <d...@php.net> writes:
>
>> On 2011-08-07, Stas Malyshev <smalys...@sugarcrm.com> wrote:
>>> Hi!
>>>
>>> As somebody that have seen reasonably big project switch from SVN to git 
>>> and worked quite actively with git since then, I think describing my 
>>> experience might be useful for those that never tried it.
>>>
>>> 1. git is much better than svn especially as applied to complex projects 
>>> with multiple participants which need to accept outside patches, 
>>> maintain multiple branches and port fixes between branches. You never 
>>> know how much you needed cheap branching/merging until you worked with 
>>> it some.
>>>
>>> 2. Switching from svn to git requires one to undergo some mental shift, 
>>> and for the first couple of weeks you may be confused and somewhat 
>>> frustrated by too many things that look like but not exactly like the 
>>> old system. It would appear too complex and unnecessarily complicating 
>>> workflows. However, as you develop new routines, you'll find out how it 
>>> makes sense and will become more effective than with svn. Note that git 
>>> IS much more complex conceptually than SVN and allows to do much more 
>>> crazy things - including rewriting history in all kinds of weird ways - 
>>> so while I don't think I had to ask SVN question in forums for years - I 
>>> still have to google "how to do this in git" and ask around for some of 
>>> the more complex things. I think it's still worth it. Don't know if it 
>>> makes me a fanboy :)
>>>
>>> 3. Having system like github around it adds a lot - maintaining multiple 
>>> repositories, forks and pull requests is a real boon. I'm not sure if it 
>>> would make sense for php, all things considered, but there are very 
>>> significant benefits of using such a system where many workflows are 
>>> already built-in.
>> having a dvcs will enable us to use pull requests in github. (maybe
>> you will not able to use the big merge button but rather do it yourself,
>> but still it's a huge improvement).
>
> Its really simple.
>
> Use git.
>
> It works, is fast and is rapidly becoming the industry standard. Do not
> sue something for "moral grounds" like the awful bzr used for emacs.
>
> Its designed as a fast, efficient DVCS.
>

It's not bzr's fault that someone had the bright idea of setting up the
server to serve the emacs' repo via a slow "dumb" protocol (sftp).

I've been using mercurial for the past 2 months and Bazaar for the past
4 years. My personal preference is Bazaar as it handles my workflow much
better than Mercurial does. Mercurial seems to encourage a "commit
everything to trunk in a linear fashion" like svn. Named branches seem
to be the only way to ensure that a merge comes in as a single commit
rather than a "fast-forward merge", but they're discouraged for some odd
reason. Maybe there are some extensions that make mercurial easier to
use in this regard, but I haven't looked too hard. Maybe that's not a
big problem for some projects, but for me, I like to know when a
particular feature was landed in trunk, and what commits are related to
it, so when I revert a change, I'm only reverting a single commit rather
than having to weed through the tree to find all the commits that need
to be reversed. And if I'm "doing it wrong™", please let me know off
list how I can improve things.

I have not used git yet, so I can't comment much there other than that
the impression I get is that it's probably the most capable system out
there, but where it still has a ways to go is usability. I hear that's
getting better too, but this git-cheatsheet
(http://www.ndpsoftware.com/git-cheatsheet.html) still confuses me.

John Szakmeister, who is a Subversion developer himself, has a good
comparison of svn, hg, bzr and git:
http://www.szakmeister.net/blog/2011/feb/17/choosing-new-version-control-system/

Long story short, his company went with git.

Cheers,
David

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to