Curt Sampson writes:
 > On 2008-06-23 22:21 +0100 (Mon), Eric Y. Kow wrote:
 > 
 > > Oh, that's normal! In the darcs pristine repository, what really happens
 > > when two patches conflict, neither of them has any effect.
 > 
 > Well, I'm quite new to Darcs, but data predictably disappearing is not
 > really what I'm normally looking for in a revision control system.

The data doesn't disappear, it's in the merger patch.  zcat the
patches in _darcs/patches, and you'll see.  How to extract it from
that patch, I don't know, and it sort of looks like in a Darcs 1 repo,
Darcs doesn't either.

What is happening here is that your workspace is left as is, which I
think may be a bug.

Because the conflict occurs at the "add" stage, in the pristine tree
(under _darcs/pristine) all patches depending on the conflicting add
(including the conflicting add itself) are reverted.  Thus you end up
with the file removed.  I've added a "ls -a _darcs/pristine" (the -a
guarantees output from ls) after recording the file in repo2 and after
doing the pull, giving the following output from your script:

chibi:test steve$ . ../darcs-test.sh 
Finished getting. 
Finished recording patch 'one' 
Finished recording patch 'two' 
.       ..      file 
Pulling from "/private/tmp/test/repo1"... 
Backing up ./file(-darcs-backup0) 
We have conflicts in the following files: 
./file 
Finished pulling and applying. 
.       .. 
chibi:repo2 steve$  

 > I think that makes sense, yes. So basically, no matter what the state
 > of my working copy, I can always do a mark-conflicts to mark up any
 > conflicts that do not have a further patch depending on them?

Not in a Darcs 1 repo in the corner case of conflicting adds, it would
appear.

 > It's already dropping in an extra copy of the file;

No, it's leaving it behind.  You put that file there. :-)

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

Reply via email to