Git sucks, or why do I use darcs instead
komar.in
komar.in
Interactive mode: "git add -p" ?
Reverting commits: "git revert commit-id" ?
Code sharing: Pretty sure git supports cloning from straight http:// (or even a file:/// if you have a smb share or whatever) ?
You can also mess with what you merge and what not via `git rebase -i` and `git cherry-pick`.
I don't see anything where darcs would be superior to git. It's just a matter of taste. Nothing to see here.
If you ignore commit order, individual lines have no way of really conveying what they've been tested with, nor what they will break if added or omitted, independent of commit time.
You get a lot of that stored automatically with git, by forcing people to define changes in terms of what was there before the change takes place.
You also have the ability to reposition this information with git rebase, and to safely walk it through change conflicts to make sure you affirm what is happening.
With this in mind, I think an algorithm like darcs' history looks like it would be much more suitable in text/block based editing, rather than programming. Something like tracking history in XML or following a Microsoft Word document.
"Darcs is a distributed revision control system... Key features include the ability to choose which changes to accept from other repositories, interaction with either other local (on-disk) repositories or remote repositories via SSH, HTTP, or email, and an unusually interactive interface. The developers also emphasize the use of advanced software tools for verifying correctness: the expressive type system of the functional programming language Haskell enforces some properties, and randomized testing via QuickCheck verifies many others."[1]
Instead, you are restoring a file to its previous state. To do this:
git checkout <commit> -- path/to/file
gitweb? cgit? Also, why does codesharing require HTTP?
Otherwise a surprisingly non-ragey post for someone who is comparing the pros and cons of a tool that is obviously very important to OP.
Seriously, if your complaints about git are a few implementation problems, user interface, and that some commands are needlessly complicated, your solution should not be to use a completely different revision control system used by nobody.
How about "DARCS did some things right that git could learn from" as a different way to present this material?
git could not switch from their history centric model to darcs' patch centric model and fix the schizophrenic ui without breaking everything built around git. In such a case a different project is useful. See python2 vs python3.
The only haskell thing that works good is xmonad. I used it for years and still very happy with it.
The only haskell things that works fast are qsort and shootout tests.
The other haskell soft is full of shit and I can't understand why.
Is this just editorializing or is there some truth to this?