[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: patch to speed up slow rcs patch processing.
From: |
Bernd Jendrissek |
Subject: |
Re: patch to speed up slow rcs patch processing. |
Date: |
Fri, 7 Oct 2005 16:02:22 +0200 |
User-agent: |
Mutt/1.4.2.1i |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Thu, Oct 06, 2005 at 12:58:58PM -0500, Michael Smith wrote:
> This patch addresses a problem we were having with a cvs file that was
> 300K lines long with a patch diff with 200K entries. The update past
> the head (i.e. version 1.2 where 1.5 is head) entry took upwards of
> 2-4 minutes per file because the complexity of the patch code was
> O(m*n) where n=# of lines and m=# of updates. The patch provided here
> changes this to O(n) complexity (which completes the same operation in
> 4-6 seconds).
Cool! Does your patch also speed up branch updates?
I'm now wondering if an O(1) algorithm is in sight. Not really O(1) but
rather O(n) with a comparatively miniscule constant of proportionality.
By keeping not the actual file contents in the ,v repository file, but
only a reference to a cached copy. foo,v might point to foo-1.5,d, for
example. And from there, maybe to foo-1.2.1.6 too, but this is getting
into wishful thinking territory.
> The changes I made from the pre-existing code were to:
> 1. reverse the order of the fragments to a in-order instead of a
> reverse order queue
Does your patch maintain compatibility with old repositories?
> As per the HACKING document, I am including the consent to use this
> patch:
>
> "I grant permission to distribute this patch under the terms of the
> GNU Public License"
Do you have a copyright assignment filed? Apropos, since CVS seems to
be "nongnu", do contributors have to do all that paperwork?
> 7035d7034
> < struct deltafrag *dftail;
[snip]
Would you please give a unified or context diff? diff -u or diff -c
works nicely; I don't know what the maintainers prefer
- --
It is manipulative to not be manipulative.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Please fetch my new key 804177F8 from hkp://wwwkeys.eu.pgp.net/
Comment: Key D7CBA633 will soon expire, check its signature of 804177F8 now!
iD8DBQFDRn/nwyMv24BBd/gRAqTIAJ9y017AHX4u7KIsW2oydhSOlJ8yXQCeL1r2
ziO5VZ1BcfdJquaxySVoXKg=
=rKFe
-----END PGP SIGNATURE-----