Issue 1913 darcs failed: Error creating file ./bar/barfile

Title darcs failed: Error creating file ./bar/barfile
Priority bug Status resolved
Milestone 2.5.0 Resolved in 2.5.0
Superseder Nosy List dagit, dmitry.kurochkin, ganesh, kowey, tux_rocker
Assigned To ganesh
Topics Core, Regression

Created on 2010-08-09.23:40:00 by igloo, last changed 2010-08-22.14:53:14 by ganesh.

msg12078 (view) Author: igloo Date: 2010-08-09.23:39:59
As discussed on IRC earlier, The combination of the directory diffing
code producing broken trees, and the Darcs.Patch.Prim.mapPrimFL
"optimisation" fixing them, is broken:

$ darcs --version
2.4.3 (release)
$ darcs init
$ mkdir foo
$ touch foo/foofile
$ darcs rec -l -a -m "foo patch"
Finished recording patch 'foo patch' 
$ mkdir bar
$ touch bar/barfile
$ rm -r foo
$ darcs rec -l -a -m "bar patch"

darcs failed:  Error creating file ./bar/barfile
msg12080 (view) Author: dagit Date: 2010-08-10.03:01:11
The discussion starts somewhere around here:

Search for mapPrimFL.

It seems to be confirmed by Ganesh if you read the log.
msg12091 (view) Author: kowey Date: 2010-08-10.17:45:29
Adding Ganesh as he was participating in the discussion and seems to 
know what's up.

I've pushed the test to HEAD.  It does seem to be not so good that Darcs 
complains about an inconsistent repo when you try to record a patch (I'm 
assuming Ian cut off that the complaint).  

I've also checked that this test fails on HEAD and darcs 2.4.3, but 
passes on darcs 1.0.9 and 2.3.1.  So this issue appears to be a 
regression from the 2.3 line.

Perhaps 2.8.0 is a reasonable milestone for this bug (at least?)

This bug is marked need-action, but the action needed was not specified.     
That said, I think we've run out of easily identifiable actions (write 
test, check for regression) and we're stuck with "determine cause for 
this bug".  But since we know what we're regressed again, this should be 
fairly straightforward?  If so, this bug needs to move to need-
msg12092 (view) Author: kowey Date: 2010-08-10.18:03:40
Sorry Reinier, another 2.5 blocker for you!  

Ian says the fix is known and wouldn't take very long.  His statement of 
the fix is "Make the tree diffing code return valid patches".  I'm going 
to assume that's sufficiently specified for a need-implementation.  Who 
can fix this?  Please volunteer.

Updates: the inconsistent repo complaint only occurs with old fashioned 
repositories.  Sorry for the lazy assumption, Ian
msg12259 (view) Author: ganesh Date: 2010-08-22.14:42:39
The following patch updated issue issue1913 with status=resolved;resolvedin=2.8.0 HEAD

* resolve issue1913: sort changes in treeDiff 
Ignore-this: 3693df699c664a8f47dc0e0f974c9b7d
msg12261 (view) Author: ganesh Date: 2010-08-22.14:53:13
The following patch updated issue issue1913 with status=resolved;resolvedin=2.5.0 CURRENT

* resolve issue1913: sort changes in treeDiff 
Ignore-this: 3693df699c664a8f47dc0e0f974c9b7d
Date User Action Args
2010-08-09 23:40:00igloocreate
2010-08-10 03:01:11dagitsetpriority: urgent
status: unknown -> needs-reproduction
messages: + msg12080
nosy: + dagit
2010-08-10 17:45:31koweysettopic: + Regression, Core
nosy: + kowey, ganesh
messages: + msg12091
milestone: 2.8.0
2010-08-10 18:03:41koweysetstatus: needs-reproduction -> needs-implementation
nosy: + tux_rocker
messages: + msg12092
milestone: 2.8.0 -> 2.5.0
2010-08-10 18:04:10koweysetpriority: urgent -> bug
2010-08-15 20:04:45ganeshsetstatus: needs-implementation -> has-patch
assignedto: ganesh
2010-08-22 14:42:40ganeshsetstatus: has-patch -> resolved
messages: + msg12259
resolvedin: 2.8.0
2010-08-22 14:53:14ganeshsetmessages: + msg12261
resolvedin: 2.8.0 -> 2.5.0