[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: cvs2arch (was Re: [Gnu-arch-users] an hack.. one night long)
From: |
wave++ |
Subject: |
Re: cvs2arch (was Re: [Gnu-arch-users] an hack.. one night long) |
Date: |
Sun, 24 Aug 2003 02:10:25 +0200 |
User-agent: |
Mutt/1.5.4i |
On Sat, Aug 23, 2003 at 08:16:29PM +0200, wave++ wrote:
> > Very interesting how the tla commit time closely tracks the additional
> > size of the {arch} directory tree. I guess the only change there should
> > be the addition of one logfile, which should be very quick for diff.
>
> In fact, tla should only diff the pristine tree against the local
> sources and produce a patch. (Am I missing something?). This should be
> almost constant over time considering that the size of the sources isn't
> changing much.
I've nailed down the problem. Look at these (hope Tom is reading):
http://www.yuv.info/~wavexx/hacks/cvs2arch-perf-c1.png
http://www.yuv.info/~wavexx/hacks/cvs2arch-perf-c50.png
As you see, in -c1 arch times grows a little due to the increased source
size (as it should be).
The problem: recursive directory scans. tree-lint, inventory,
make_changeset (etc) do several recursive directory scans of the whole
project tree. This isn't a real problem on the source tree, but it's a
problem under {arch}. {arch} is cluttered with files and/or directories.
Either 1) we should scan ONCE and keep the results, or 2) remove/ignore
useless directories in {arch} when possible (would be better to ignore
it entirely). 1 seems the the best solution to me.
patch-logs seems to be the primary problem. In these tests, after
committing, I removed all-but-lastest patch-logs in {arch} (even under
the pristine tree). In -c50 I "cleaned" {arch} once every 50 commits.
The results are pretty clear.
--
'(wave++ "Yuri D'Elia" "http://www.yuv.info/")