[darcs-users] darcs tells me its consistent but doesn't seem to be so

Stephen J. Turnbull stephen at xemacs.org
Fri Dec 16 04:24:50 UTC 2005


>>>>> "kirstin" == kirstin penelope rhys <kirstin.rhys at helicor.com> writes:

    kirstin> Once this happend during a pull, and darcs couldn't abort
    kirstin> atomically because it couldn't modify one of the
    kirstin> files--the patches hadn't been completely applied to the
    kirstin> working directory, but mangled versions of the patches
    kirstin> were added to the patch directory--all very weird.

Did you do a darcs check or darcs repair?  If so, did darcs claim the
repo was consistent?

    kirstin> At the same time, it would have been nice if darcs,
    kirstin> unable to continue nor rollback completely and cleanly,
    kirstin> had preserved the necessary state information so that it
    kirstin> could pick up where it had left off after I had corrected
    kirstin> the problem(s) with the filesystem.

If darcs doesn't know enough to rollback, surely it doesn't know
enough to repair and continue.

Not being able to rollback is a bug (at least if you demand ACIDity of
your SCM).  I wonder if that could be fixed if darcs simply implicitly
tagged the repository at the start of any command that potentially
changes it, and updated pending (I assume it does that already).  Then
a rollback should be simply `darcs obliterate'ing all the patches
since the tag, reverting the repository to consistency, and applying
the pending patch.

OTOH, since transferring patches is simply a file copy, and you write
that something, apparently not darcs, seems to have mangled them, I
have to wonder if anything can be reliable in such an environment.

-- 
School of Systems and Information Engineering http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
               Ask not how you can "do" free software business;
              ask what your business can "do for" free software.




More information about the darcs-users mailing list