JP Vossen on 22 Dec 2018 12:58:07 -0800


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] Git: net time gain or loss?


On 12/22/18 1:41 AM, Fred Stluka wrote:
Right.  One of the things I love about Git is that a commit of multiple
files is atomic.  Before Git, every other VCS I used required me to
checkin each file separately.  So, if I changed multiple files as part of
a single bug fix or feature, it happened occasionally that someone
else would checkout while I was in the middle of my multiple checkins.
So they'd get part of my change, and things would fail.  Sometimes
in weird unexpected and unrepeatable ways, so they could lose a lot
of time before it occurred to them to just do a fresh checkout to fix
it.  And of course, that fresh checkout was subject to the same race
condition with file updates from me and others, so it might not
work either.

With Git, I "add" each file I change, staging them all to be part of
the next "commit".  Then I do an atomic commit, so anyone else
who pulls from the repo gets all of my changes or none.  Atomic
is critical here.  I railed against the lack of it for years, to lots of
people who often didn't even understand the problem, before I
finally moved to Git.  Ah...  Much better!...

Fred, what did you use before Git?  All of the other DVCSs are atomic too.

CVS certainly had that non-atomic problem, and that drove me nuts. RCS had it too, that's why CVS inherited it. *The main* reason for SVN to exist is to "do CVS better" and one of the first things they fixed was that atomic problem. OK, *everything* else they did was really odd but...they fixed the atomic problem.

Other than RCS/CVS I can't think of a major VCS that is not atomic. Maybe there are some small players...

Later,
JP
--  -------------------------------------------------------------------
JP Vossen, CISSP | http://www.jpsdomain.org/ | http://bashcookbook.com/
___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug