On Wed, Aug 16, 2006 at 11:22:45AM +0200, Niklas Frykholm wrote: > I have hit exponential time in "darcs pull". It has been running > for 8 hours now, with no sign of stopping. This has happened to > me before, but in the past I have always been able to resolve > the issue with unrecord and hand-merging.
It's hard to know how to (if possible) "work around" this. The thing taking time is darcs commuting patches, especially such that forms (and sometimes unforms, I think) mergers. This is the root of the problem, and the only way to make it go away is to remove them (e.g., with unrecord). But they could also be "covered", preferably with a tag. When the tag is in both repos (and the repos are optimized with --reorder to bring out all out of order patches), the pre-tag parts of the two repos won't be looked at by darcs any more when pulling and pushing, so the conflict mess will thus be buried. To get to this state, all the conflicting patches must somehow first be brought together though... I think the order in which patches enters the guts of darcs can have an impact on the amount of cpu time. I've also seen that sometimes pulling conflicting patches in small bunches is faster than pulling all patches at once. You could try to optimize both repos with --reorder before the pull, but then there is also risk for hitting a real bug in darcs where it can no longer commute the patches into place to perform the pull, so try it with copies first. > It seems that whenever we run into this kind of behavior, it is > our .vcproj files that cause the problem. We have lots of > different configurations, they tend to change frequently and > they are partly auto-generated. When we get conflicts it is > almost always in these files. If the different repos "fight" each other, trying to preserve their local variety of the .vcproj file, this is more or less guaranteed to result in exponential conflicts. You could perhaps try to always record these changes in separate patches, and whenever possible, use amend-record, or do an unrecord - record before pulling/pushing them. But unless the .vcproj files converge at points (which can be tagged), this will only lead to slower buildup of the exponential mess. -- Tommy Pettersson <[EMAIL PROTECTED]> _______________________________________________ darcs-users mailing list [email protected] http://www.abridgegame.org/mailman/listinfo/darcs-users
