by ludsan on 2/4/14, 12:10 AM with 63 comments
by __david__ on 2/4/14, 1:25 AM
I have mixed feelings about it now. Darcs was the first VCS I used and it was very well designed from a command line point of view. It's so simple and easy and it just made sense. The interface for adding hunks was just great and like nothing else that came before it.
But—we (my partner on a project) recently just switched one of our earliest projects from Darcs to Git. It started in 2005 and we've been very happy with Darcs. But we'd been using Git a lot in the past few years and Darcs started seeming a little simplistic. We were really hesitant because it had been working so well for the past years and why change something that isn't obviously broken?
We decided to just do the Git switch and it because clear after just a couple days of working with Git that it was a much better experience overall. Having easy easy feature branches and "git stash" and "git rebase" made our lives so much better and our moods so much happier that we cursed ourselves for not switching years ago.
Git even copied the Darcs hunk interface with their "add -p" and "checkout -p" options, which I use constantly.
Since I became proficient at Git, nothing else looks good any more (even the VCSes I used to love).
by elviejo on 2/4/14, 1:47 AM
Seems to me that Git is more complicated than it should be.
I mean code repository as a software developer is an essential tool it should be as intuitive to use as a text editor.
PS: Also the common answers to "Git is complicated" are symptom to me that is harder than it should be 1. "Git is not version control is an application framework" well since it only has a version control build into it I say thay are the same.
2. "Git is difficult but it enables you do to really powerful stuff" Here I quote Kay: 'Simple things should be simple, complex things should be possible.' Seems to me that git took the approach complex things are complex and simple things are complex too!
3. "You just don't understand Git's model" Well many programmers barely understand what a compiler does yet they are capable of writing software.
4. "You just haven't invested the time it takes to master git" I have seen posts from developers working with Git that still can only do the most basic stuff.
Those are the same excuses used for previous technologies just replace git with: Java threads (before Go, Erlang) OOP (before Java, Smalltalk) Functional Programming (before haskell, F#)
In each case when the tool was correct the paradigm became obvious.
by SeanLuke on 2/4/14, 2:27 AM
by giulianob on 2/4/14, 2:14 AM
by gkoberger on 2/4/14, 1:14 AM
That being said, for beginners, GitHub's app (albeit GitHub-centric) breaks down the most common use cases and turns them into buttons. It's probably a good place to start.
by hcarvalhoalves on 2/4/14, 2:24 AM
by bhrgunatha on 2/4/14, 1:43 AM
by jjoe on 2/4/14, 2:05 AM
by caitp on 2/4/14, 2:08 AM
1) A great way to find regressions which is easy to automate (bisect)
2) light-weight branches
3) nice tools for dealing with patches (am, format-patch)
4) rebase (squash, amend, fix bitrot)
5) Super-simple submodules (compare this with gclient DEPS to get around SVN
limitations!)
Not to mention the main point of Git, the distributed nature, and the ease of moving code between two repositories.These basics are easy to learn, not demanding at all, and just feel good to use. I have trouble comprehending when people say it's difficult, especially compared to things like Mercurial (and the mq extension), or SVN.
by stephen_g on 2/4/14, 3:34 AM
I was using SVN for my job, which was crap (big code base, everything was super sluggish and branching and merging was an absolute nightmare). I tried Git on a little personal project and immediately it felt far better. We switched at work about a year later (it took days to import > 8 years of SVN history).
The CLI has some gotchas, but really it didn't take me long at all to work that out.
And say what you want about the staging area, but I absolutely love it. You can skip it if you want (git commit -a) but I think it's awesome and super-useful.
by IgorPartola on 2/4/14, 2:01 AM
by djtriptych on 2/4/14, 1:57 AM
by cousin_it on 2/4/14, 1:56 AM
- Is it possible to design a Git-like VCS with only two or three "places" instead of five?
- What would be the downsides of such a system?
by na85 on 2/4/14, 3:07 AM
To be blunt, git seems good but the documentation blows.
by fideloper on 2/4/14, 2:21 AM
by jaybuff on 2/4/14, 2:38 AM
by hannibalhorn on 2/4/14, 2:23 AM
by delinquentme on 2/4/14, 2:19 AM
by tks2103 on 2/4/14, 2:08 AM
You have to modify the law a bit with this article but you get something like "Git is not hard". That is the answer to this article.
by joemaller1 on 2/4/14, 2:09 AM
by jaunkst on 2/4/14, 2:34 AM
by xyclos on 2/6/14, 2:09 AM
by wcummings on 2/4/14, 1:18 AM