[darcs-users] Evil sources

David Leuschner david.leuschner at googlemail.com
Wed Sep 21 10:59:42 UTC 2011


Hi all,

sorry, I accidently sent the unfinished message.  Here's all of it:

I just helped a coworker patiently waiting several minutes for a
"darcs pull" to give him some output.  Darcs is terribly slow and
performance tuning won't help here.  The cause was that
_darcs/prefs/sources contained an HTTP repository URL with an IP
Address but the host was down.   When I turned on --debug-verbose it
was clear to me what the problem is.  I often help with such problems
- but I'd rather not and as a regular Darcs users you're annoyed if
something like that happens.  Because the fix is so simple (if you
know what to do) I didn't bother to report it as a bug.  In fact: I
won't complain anymore beyond this email.  But I can understand why
people use git instead.  Without turning-on debugging output I
couldn't say why pulling a few simple, small patches from a fast
remote server is taking so long.  And even if I turn on debugging
nobody can expect a user to understand why Darcs is so smart that it
tries to access a different host that is down. I don't know why there
was no timeout or if the timeout took too long or if Darcs tried the
same host several times.  The fact is: a regular, experienced darcs
user can easily get the impression that Darcs is slow or doesn't work
at all.

I understand that the different sources are necessary for lazy
repositories.  I think we have to assume that we won't get good
timeout behavior all of the time.  And even if the cause might be DNS
or a firewall: the problem is, that a) the user doesn't know it has
nothing to do with URL she gave on the command line and b) she doesn't
know how to fix it.

I think Darcs should be changed that it

 1. outputs a message if it tries to access a repository other than
that given on the command line
    (this should be true for "local" files, too, because NFS/AFS could
be down!)

 2. has a short timeout independent of the operating system timeout
(i.e. 4 seconds)

 3. never tries a failed source again

These things definitely need some more thought and discussion. But
they should not get so much thought that nothing is changed and users
keep switching.  I don't think backwards-compatibility is a major
concern: things should change and get better as long as there are
enough users left to notice.

After having said all that: our company still uses exclusively Darcs
and all in all we're very happy.  Darcs is great and has only very few
small annoyances and they're no problem if you know what to do.  We'd
love to see some improvements, like

 * a record more supporting classifying changes into groups and then
either record these groups as patches     or reverting them

 * a possibility to re-select the hunks that were selected the last
time (but then I hit "q" accidentily or the tests didn't succeed)

 * and of course rebase :-)

Keep up the good work!

Kind regards,

   David

-- 
David Leuschner
Kartäuserstraße 51b
79102 Freiburg
Tel.: +49 761 4296027


More information about the darcs-users mailing list