Hi,

As a switcher, I feel I should share my experience.

I am never a power user of any VCS, but I've used RCS, CVS, Subversion, 
Mercurial and Git, and my level is always best characterized as barely enough 
to get work done. I chose Mercurial instead of Git during my first encounter 
with the concept of DVCS, mostly because the belief that "they two are pretty 
much the same", and also, because I am a Python person, choosing Mercurial 
seems like a loyal thing to do. I sticked with Mercurial for over three years, 
and resisted the hype around Git and Github. My understanding of Git stayed at 
the level of believing "rebase is evil, and hg is safer", "staging area solves 
a problem I don't have", and "mercurial can do that too, with these extensions".

This was until my wife started to use Git for work, and rave about it. So I 
checked it out.

And I switched. Not because there are things that are inherently impossible in 
Mercurial, but there is a culture component of Git that emerges around an open 
door design (which Python does too and proudly labels it as a language for 
adults).

For example, Git infuses this attitude into you that commit quality is as 
important as your code quality, and Git is optimized to make beautiful commits. 
With Git, you tend to compose and edit commits carefully as you would write 
beautiful and elegant code. Have uncommitted changes in one file deal with two 
irrelevant bugs? Easily make two separate commits by picking lines to commit. 
Have uncommitted changes but there is an emergent bug to fix? Avoid a 
half-baked commit by simply stashing your changes and reverse it when you are 
done with the bugfix. Some seems to fear the power to rewrite history, but it 
is a very powerful tool. Have a commit that just corrects a typo? You can 
combine it with an earlier commit. Regret that the summary of a previous commit 
is not clear enough? You can edit that message. 

The learning curve is absolutely steeper for Git for people with prior 
knowledge of other VCS. This is mostly because Linus' vision about Git is a 
file system on top of a file system and he did not try to emulate existing VCS 
systems. However, if you want to support real distributed workflow, I would 
argue Git and Mercurial require the same amount of learning, as you could see 
in the comparison in PEP 374. But if you care about commit history as much as 
you care about code quality - and I believe commit history is essential in 
distributed collaborative workflow enabled by a DVCS - then you will appreciate 
the Git workflow and the Git way.

And bonus: Git changes the way you think, the same thing learning functional 
programming would do to you.

Regards,
Eddie


On Feb 1, 2013, at 10:17 AM, Patrick Fuller wrote:

> Seconding Markus - My biggest issue switching from svn to git was honestly 
> the word "checkout". It means two different things between them, and I found 
> myself doing stupid things all the time. Outside of that, and the weird 
> "staging area" thing I never got a hold of but can be easily skipped, I 
> didn't think it was all that terrible of a switch.
> 
> 
> On Fri, Feb 1, 2013 at 10:53 AM, Markus Sitzmann <[email protected]> 
> wrote:
> I started with CVS, switch to svn, tried to learn git which made my head
> explode. However, for some odd reasons I didn't gave up on git, and one day
> it make click. Since then I switched everything to git and never looked
> back. I agree, when you come from CVS and svn, git changes your way of
> thinking. It is probably easier to start right away with git - but its
> concept is more logic.
> 
> 
> 
> On Fri, 01 Feb 2013 11:23:57 -0500, greg landrum <[email protected]>
> wrote:
> 
> > You ask an excellent question. I will provide my two cents, from the
> > context of someone who has been saying "DVCS solves a problem I don't
> > have" for a couple years now.
> >
> > There is definitely a big learning curve for those of us who have been
> > using cvs/svn for years (I think it may be more difficult for an svn
> > user to switch to fit than for someone who has never used version
> > control to learn it); that's a strike against git. It's also super
> > trendy, which makes me nervous. Finally, a lot of the criticisms that
> > git zealots make of svn are poorly informed and/or based on old versions
> > of svn. (Finally+1: the iOS spelling correction really seems to hate
> > "git")
> >
> > Having said all that, git and related systems do make it much easier for
> > other people to contribute to an open source project because they allow
> > the others to use source control to track their changes without them
> > having to have commit access to the main code repository. There are some
> > other advantages (among them having access to version control while
> > offline) but that one is just a giant plus. Technically people could
> > also accomplish that using svn and a vendor branch, but that is a pretty
> > large pain and would not help with merging their changes/additions into
> > the core when the time comes for that.
> >
> > -greg
> >
> > On Feb 1, 2013, at 4:10 PM, "Igor Filippov [Contr]"
> > <[email protected]> wrote:
> >
> >> Rant
> >>
> >> I tried working with git naively thinking I'll figure it out on the go
> >> (after long working with CVS and SVN). Nothing doing. Then I found a few
> >> tutorials. The description of detached heads and other arcana made my
> >> brain explode.
> >> Why does version control need to be so complex?
> >> Do we really need it for projects not involving thousands of developers
> >> and millions lines of code?
> >>
> >> /Rant
> >
> > ------------------------------------------------------------------------------
> > Everyone hates slow websites. So do we.
> > Make your web apps faster with AppDynamics
> > Download AppDynamics Lite for free today:
> > http://p.sf.net/sfu/appdyn_d2d_jan
> > _______________________________________________
> > Rdkit-discuss mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
> 
> ------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_jan
> _______________________________________________
> Rdkit-discuss mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
> 
> ------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_jan_______________________________________________
> Rdkit-discuss mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_jan
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to