[darcs-users] How to downgrade darcs 2.4 -> 2.2? (issue1817)

Dan Pascu dan at ag-projects.com
Tue Jun 1 19:06:07 UTC 2010

On 29 May 2010, at 16:40, Radoslav Dorcik wrote:

> Hello,
> On 05/29/2010 02:47 PM, Petr Rockai wrote:
>> Dan Pascu<dan at ag-projects.com>  writes:
>> Well, the issue is that no-one on the darcs team is using external
>> merge, as far as I can tell. However, a testcase for the bug would
>> certainly improve its changes of it being fixed. I am on a tight
>> schedule, and converting informal bug descriptions into tests is
>> something I currently cannot afford to spend time on.
> I can spend time here with reproduction of the error & test case  
> construction.
> But I need some short help from Dan - how to bring up my env for  
> external merge.
> Do you use free available tool for external merging ?

I use k3diff on linux or opendiff on OS X (both freely available). I  
have a line like this in ~/.darcs/defaults:

# for linux
ALL external-merge kdiff3 --output %o %a %1 %2

# for mac
ALL external-merge opendiff %1 %2 -ancestor %a -merge %o

When I have to pull a patch and I also have a working copy that was  
modified in a way that conflicts with the pulled patch, darcs will  
open the external merge tool in order to fix the conflict. Before  
doing this it will create 3 directory structures in /tmp: /tmp/ 
version1, /tmp/version2 and /tmp/ancestor with the appropriate files  
and directories from the 2 conflicting versions and the ancestor. The  
issue is that the /tmp/version1 tree is broken. It contains all the  
files and directories as the other 2 trees, but all the files are  
empty (0 bytes). As a result the external merge tool thinks that the  
pulled version made the changes it really made, but it thinks the  
local version has completely erased the file (which is false). As a  
result it tries to solve a major conflict and the result is that id  
deletes a large portion of the file (everything that was not touched  
by the pulled version).

Below is my message I posted to this list a while back describing the  


Apparently I cannot leave a comment on that issue (there is no option  
on the site to create an account and without one I see no option to  
reply to the issue), so I'll post it here.

I can confirm that bug report. I happens to me every time I pull and  
there is a conflict. I have the following setting in ~/.darcs/defaults:

ALL external-merge kdiff3 --output %o %a %1 %2

The case where I see this is if I have unrecorded changes to the  
working directory and I pull a patch with conflicts with my unrecorded  
changes. In that case the external merge application is invoked. In it  
I can see the ancestor version and the pulled version all right, but  
my own version is completely empty. darcs generates 3 directory trees  
in /tmp: /tmp/ancestor, /tmp/version1 and /tmp/version2. The ancestor  
and version2 trees and files are all right. But the version1 tree is  
broken. It contains the correct directory structure and the required  
files, as the other 2 trees do, but all the files under the version1  
tree are empty.


> Thanks,
> Rado


More information about the darcs-users mailing list