[darcs-users] Re: [darcs-devel] bug in resolve

Tommy Pettersson ptp at lysator.liu.se
Sat Jun 11 07:58:32 UTC 2005


[Sorry about the first reply.  I hit the wrong button.]


On Wed, May 11, 2005 at 05:47:51AM -0700, Tupshin Harper wrote:
> Possible problem 2:
> If  I do a get of repo a (to repo b), a.txt exists in both current and
> working.
> 
> But if I do a mkdir c, cd c, darcs init, darcs pull -a ../a, I get a
> conflict message and a.txt is in current but not working. (and c then
> suffers from the same bug in resolve that a did).
> 
> Is there a theoretical or practical reason why pull -a and get should
> leave the working in different states?


On Fri, Jun 10, 2005 at 10:50:45PM +0000, Mark Stosberg wrote:
> Your question about why get and pull return different results is
> interesting to me, too. 


The explanation for "problem" 2 is in the latest darcs manual
in the best practices section.  In short:  The repo contains
a conflict.  Darcs handle this by ignoring the conflicting
parts of the patches, in this case the removal of the file
and the addition of lines to the file.  The result is the
file before either of those patches is applied, and this is
what 'darcs get' creates.  If you run 'darcs resolve' in the
"gotten" repo, darcs will mark the conflict (in a maybe not
so good way) by removing the file.  However, 'darcs pull'
does this "resolve" automatically, and that's why the result
is different.

Pull is the only command that automatically looks for and
marks a conflict.  Get, unrecord and unpull can cause repos
with conflict without announcement and automatic marking.

I think it would not be so hard to make these commands
announce a conflict, and probably they should, but it's
a harder question to answer if they should also mark it.
I don't think unrecord should, at least.


-- 
Tommy Pettersson <ptp at lysator.liu.se>




More information about the darcs-users mailing list