[darcs-users] darcs apply is very, very slow...
Nimrod A. Abing
nimrod.abing at gmail.com
Sun Feb 11 10:18:34 UTC 2007
Hello,
I have a repository consisting of 141 files. I maintain two copies of
this repo, one for recording changesets for public consumption and the
other being my working repository.
Recently 127 of those files needed changes to their copyright info. I
made those changes in my working repo and then when time came to push
to the public repo, darcs just sits there. I left it running for about
a hour and when I came back, it still had not finished. I don't think
that it crashed because darcs soaks up 85% of my CPU. Finally I gave
up after about 30 minutes (total running time about 1 hour 30
minutes).
The patch is about 190K with 3,654 lines of text and touches 127 of
those 141 files. The changes to each file are small. About 4-6 lines
on average. Although some files have about 10-15 lines modified and
possibly have some conflicts as well.
This is the first time that I have applied a changeset this large. I
figured size would not be an issue since it only touches 127 files. I
have also tried rebuilding darcs using the --enable-antimemoize option
and tried re-applying the same patch with the new version of darcs.
There were no noticeable improvements whatsoever.
I then tried something else. I broke up the patch into several
subpatches. Using some shell scripting I had darcs create one patch
for each file that was changed.
This time I tried pushing each individual patch. This time I also
timed the operation using the time command. Here are some results:
[~/Temp/cake-dev]
nimrod at iwojima:$ time darcs push --patch='Merge changes from
CakePHP-v-1.1.13.4450 PART 0000000004' -a
Pushing to "/home/virtual/cake-dev/html/cake"...
Finished applying...
real 0m57.239s
user 0m47.367s
sys 0m0.748s
[~/Temp/cake-dev]
nimrod at iwojima:$ time darcs push --patch='Merge changes from
CakePHP-v-1.1.13.4450 PART 0000000005' -a
Pushing to "/home/virtual/cake-dev/html/cake"...
Finished applying...
real 0m58.420s
user 0m47.223s
sys 0m0.768s
[~/Temp/cake-dev]
nimrod at iwojima:$ time darcs push --patch='Merge changes from
CakePHP-v-1.1.13.4450 PART 0000000006' -a
Pushing to "/home/virtual/cake-dev/html/cake"...
Finished applying...
real 0m53.750s
user 0m46.779s
sys 0m0.716s
Each patch is about 1K in size now. And after seeing the results
above, I'm a bit disappointed that it takes this long to apply a
single patch. There are 127 of these smaller patches and each one
takes about a minute to apply. By these figures it will take over 2
hours to apply all these patches.
Is there anyway to improve this? I am willing to subject myself to
experimentation :) since this repo is only my side-project and I keep
backups of everything.
Thanks in advance.
--
_nimrod_a_abing_
[?] http://abing.gotdns.com
More information about the darcs-users
mailing list