William Morgan wrote:
I can make many convincing arguments for the usefulness of distributed, changset-based VC, but what I don't have a sense of is how stable and reliable darcs is. I'll be in big trouble
if things go awry. :)

The concepts behind Darcs are mostly excellent. When it has worked, it really has been the best version control experience I've had.

1. The first question on the FAQ mentions certain types of conflicts can
   cause darcs to hang. It then points to a bugreport that is a year
   old. Is this still an issue? Is it a common occurrence? In such a
   situation, is it easy to solve, or difficult?

This issue is something that's causing the company I work for to try to move away from Darcs. We've had a number of issues with it, which I'll list and explain:

1. Hanging
We've had a large number of 'hangs' when trying to interact with our main (and largest) repository. These can sometimes be 'solved' by leaving Darcs running for a large number of hours, but we estimate that the time needed for most of our 'hanging' operations is now measured in days.

2. "impossible case" error messages.
When conflict resolution gets complicated, Darcs sometimes gives an "impossible case" error message, rather than annotating the files in the usual manner.

3. Excessive memory usage. (Heap exhaustion)
Darcs will very often exceed its standard heap limit. Raising it to the maximum often helps, but sometimes you just can't provide enough RAM for it to complete the operation you're requesting. 2GB isn't enough.

4. Repository corruption.
If there's a locked file in a repo, and an incoming patch changes it, Darcs will terminate and leave the repository inconsistent. When it does so, it has updated its internal copy of each file affected by the patches you've pulled but not your working copy. This means that Darcs then believes that you've altered your working repository to hold the inverse of those patches. This is often recoverable, if you know how.

5. Broken input handling in Windows.
Quite often, when using Darcs from the windows command prompt, Darcs will stop accepting keyboard input. The only solution is to close the command prompt or use Task Manager to kill Darcs, try again and hope it doesn't happen again. We normally use TortoiseDarcs, so this is not as much of an issue as it might seem.

6. Unusable over a VPN.
If you try to use another darcs repo over a fileshare that you're accessing over a VPN, you'll find it incredibly slow. This is, I believe, down to latency on file operations and the fact that Darcs initiates a large number of them. I've only tried this with one VPN; I do not know whether or not it is true for others.

7. Speed problems.
All of our users now complain about Darcs being slow. Though there is some advice often given on the darcs mailing lists that might solve it in the typical case, it doesn't do anything useful for us.

8. Cannot get old versions of large repositories.
If you try to get an old version of a large repository, Darcs can take a very long time (and sometimes run out of RAM). There are workarounds for this, but they aren't always obvious.

9. Conflict resolution.
This could come under Hanging or Speed problems, to be fair, but it's a significant issue in its own right. The current conflict resolution system in Darcs is known to be unsuitable in many ways. It's easy to get exponential conflict resolution, and active parallel development branches quickly become impossible to maintain. This negates much of the advantage of Darcs' patch management.

Alternatively, if there's another VCS I should be considering
(commercial or not), I'd be interested.

As would I. Mercurial has been mentioned, here, before, and is certainly on my list of systems to investigate.

I really like being able to pick out individual hunks when creating a
changeset, and it's not clear to me that the darcs alternatives offer
> that.

It is a useful feature and appears to be unique to Darcs. Whichever version control system my company moves to, we'll probably make sure we can do something like it, even if that entails alteration.

Regards,
Grant Husbands.
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to