Why darcs instead of git?

Using pure functional languages can have a lot of benefits over using impure imperatives, but low level systems languages will generally allow you to achieve much greater performance, especially when they are imperative because it allows you to specify the exact steps in how the cpu should compute the result.

If there is ever list of tools where high performance is an absolute must then I would put VCS at the top of that list, and git achieves this very well. However performance is not git’s only advantage over many other other types of version control systems anyway.

  • How to go back to a tag in darcs?
  • What version-control system is most trivial to set up and use for toy projects?
  • Convert darcs repos to git with multiple branches
  • Static web frontend for Git/Mercurial/Darcs
  • How do I fork a git tool and edit it for use with another DVCS, without confusing git users?
  • How to pull one commit at a time from a remote git repository?
  • The git team is handling the unsafe c code very well, and I never worry about my type system (or any other features of the language it is written in), so why is it that there is a lot of haskell developers that must use darcs when they will only be using the finished product?

  • How to undo git rm -rf dirname without a first commit?
  • How can I get coloured patches with git interactive on bash?
  • Stuck repo using stash after crlf normalization?
  • Git diff doesn't ignore specified files in .gitignore
  • Git: How to ensure new branch is based on upstream master
  • git add . doesn't work
  • 3 Solutions collect form web for “Why darcs instead of git?”

    I think in general certain communities of users will gravitate towards one technology or another. This is especially true if a technology uses the community’s language. It is also possible(though I have no idea) that the author and/or initial users of Darcs were fairly well known Haskell developers, thus having more influence.

    There are other examples, such as Mercurial appears to be more popular in the python community while other languages appear to use Git.

    Once you are using a particular piece of software it may not be worth it to switch to another even if there are advantages.

    Honestly though use whatever you like best. At this point it is almost a requirement to have hg, git, and svn installed and know the basics to using them. If you are using Haskell it appears you probably need to add Darcs to this list.

    Darcs manages collections of patches instead of chronological history. More about this is on the darcs wiki page documenting differences with other VCS. This difference is illustrated by a darcs feature called spontaneous branches which use an advanced form of cherry-picking. I used a workflow based on this extensively with a 100,000k LoC project. Besides that technical difference, darcs is very user-friendly. There are fewer commands, and most are interactive by default, prompting you about what to do.

    Because of darcs strengths and ease of use, I much prefer it over git, which I also use regularly for open source projects. Darcs is easy enough to use that even if you have to learn git to contribute to some projects, you may still enjoy and benefit from using darcs on other projects where you have a choice.

    You seem to be implying that git and darcs are equivalent (or even similar) other than implementation language.

    If you have used both, you’ll realize this question makes no sense. If you haven’t used both, the answer to the question has an obvious prerequisite of knowledge of both.

    Darcs exists. That’s enough justification for it to exist and be used. If you like it, you, too can be a user. If you don’t like it, you’ll know why you chose something else.

    Git Baby is a git and github fan, let's start git clone.