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