On Mon, Nov 28, 2005 at 04:27:17PM +0100, Aaron Kaplan wrote: > darcs pull between a particular pair of local repos is taking more than > fifteen minutes on a relatively modern machine, even when there are no > changes to pull. Is this a bug, or is there really some complex > computation needed to determine that there are no changes to pull? I > would have thought it was a simple subset test, and there are fewer than > 100 patches total between the two repos. > > I'm using darcs 1.0.4. The repos are about 140M, which is significantly > bigger than the other projects I've tried managing with darcs.
I don't really know darcs deep enough to answer this question, but I'll toss some ideas. When darcs compares two repos it can't assume the patches are stored in the same order in the two repos, so it performs a potentially complicated computation to find out what patches are common and unique between the repos. If darcs needs to change the order of some patches that have been transformed to mergers due to conflicts, I think it can become exponential, but I don't know. Anyway, darcs can optimize away parts of this common/unique calculation if the two repos: share a common tag, have been optimized with that tag, and there are no "out of order" patches "before" that tag. You can get "out of order" patches if you Pull a tag that tags some but not all patches in the repo. You must use the --reorder option with Optimize to move such patches to after the tag. The preferred way is to Tag and Optimize regularly. Then darcs only needs to look at "new" patches most of the time. -- Tommy Pettersson <[EMAIL PROTECTED]> _______________________________________________ darcs-users mailing list [email protected] http://www.abridgegame.org/mailman/listinfo/darcs-users
