Cloning a repository with a big history (eg darcs.net with > 11K
patches) can be 2 times or 3 times slower with patch index creation
(currently enabled by default).
I took the case of cloning a local darcs.net repository with a hot hard
drive cache. On an Intel Atom netbook, cloning is approx. 3 times
slower. On a more modern i3 netbook cloning is approx. 2 times slower.
Apart from the slowness, another problem is that PI creation at cloning
is not announced by a message, and it is not ctrl-c'able (or better: it
is but the user only sees a message telling that the cloned repository
is lazy).
I don't know if it is computationnally possible to make patch index
creation *faster* than what it is now.
So a couple of easy fixes I can imagine are:
* disable patch index by default at clone and init and in repositories
that do not explicitely have a patch index. This would leave us only
with "darcs optimize enable-patch-index" to create it.
* disable patch index on cloning and initializing, enable it only when
running annotate or log with a file argument, when the repository is
writeable.
Attached are the figures of the informal benchmarks I ran, they are
quite reproduceable (with current darcs HEAD).
Attachments
|