On Thursday 06 January 2011, Mike Alexander wrote:
> --On January 5, 2011 2:12:06 PM -0500 Derek Atkins <warl...@mit.edu>
> > I get the "git is cool" aspect of it.  But I'm trying to get people
> > ignore the "git is cool" part and to seriously think about the
> > technicalities: what does git buy us that we don't have now, and will
> > we really truly use those features that git provides that svn (or
> > other tools built on svn, including git-svn) does not?
> 
> For the record, I agree entirely with this.  Changing is painful and
> needs to be worth the pain.  There are lots of source code management
> systems out there and almost all of them have advantages (and people
> who swear by them).  Personally my favorite is Clearcase, but we're
> certainly not moving to that!  Mercurial is not too bad either, and I
> already use that for other open source projects.  Git is probably good
> too, but I don't know it very well.
> 
I have worked with clearcase as well - almost 10 years ago. I remember I liked 
it's concept of views and strong branching. I also remember that merging was 
as tricky then as it still is today in other source management systems I used 
in the meantime. And indeed, Clearcase isn't even an option for GnuCash, so I 
won't go into it more.

I started playing with git a couple of months back, just to see what it could 
do. My first test was to import the gnucash project using git-svn.

I have a fair amount of experience in svn, which I don't have yet in git. 
Still it didn't take me long to prefer git over svn. I can't very well 
describe why. I think it's a mix of subjective and objective criteria.

On the subjective side, I am under the impression that the git way of doing 
things seems to align better with my sense of logic and representation of 
development history.

More technically, I find that git has a set of commands that is more helpful 
in many situations. I can find ways to do most things in svn as well, but in 
git it is often easier, or more direct, or more flexible.

I particularly like the flexibility that branches have in git, I already 
enjoyed the rebase command, partial commits (like committing only a few of the 
changes in one file), ...

I should also add that I have had to search hard to do certain things and am 
frequently confused because I'm conditioned in the svn way of doing things and 
git does some things fundamentally different. So there would definitely be a 
learning curve.

Equally, so far I have only had a couple of occasions to experience git's 
merge capabilities. My first impression is again that git tends to be more 
helpful and more flexible at that time. The more recent svn versions have 
improved in that area though, but in my (subjective) opinion are not up to 
git's standards yet.

What I don't have experience with at all yet is working with others via git. 
Like pushing or pulling changes to/from other git repositories.

What I am missing in git is the linear version numbering that comes with svn. 
I suppose it wouldn't work very well in a system that uses branches as its 
primary metaphor, but I miss it nonetheless. It's not obvious to see to states 
of the source code and know at a glance which one is more recent or not. The 
sha1 sum defines each commit uniquely, but seeing it in the about dialog box 
from GnuCash doesn't tell me if this build is from a more recent source than I 
built yesterday, and whether I should update my sources for a rebuild or not.

Geert
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to