bug-cvs
[Top][All Lists]
Advanced

[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-----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]