info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: jar files in cvs repository


From: Jim.Hyslop
Subject: RE: jar files in cvs repository
Date: Mon, 21 Feb 2005 10:13:25 -0500

Jesper Vad Kristensen wrote:
> That's very interesting. We're working with binary source 
> code here and
> have some performance issues when retrieving stuff from 
> branches (due to
> the backtracking or whatever it's called).
> 
> Would you - or anyone else here - happen to know if storing the whole
> copy of the file each time speeds up retrieval in branches?

Possibly. It depends how long it takes to apply the deltas.

The RCS file format stores the head revision in its entirety. Previous
revisions on the trunk are stored as deltas between lines, where a line is
defined as any sequence of bytes (including 0) ending in an ASCII LF. Deltas
are calculated from the head backwards.

Branches are stored as deltas from the branch point forward. So, if you have
a branch structure:

1.6    1.2.2.4
 |       |
1.5    1.2.2.3
 |       |
1.4    1.2.2.2
 |       |
1.3    1.2.2.1
 |       |
1.2------/
 |
1.1

then to retrieve 1.2.2.4, CVS retrieves rev 1.6, applies the delta to get it
to 1.5, applies the delta to get it to 1.4, and so on down to 1.2, then
applies the delta to get it to 1.2.2.1, then the delta to get to 1.2.2.2,
and so on up to the tip. In this case, that's a total of 8 patches that are
applied.

If each delta involves a significant portion of the file (e.g. it's a large
file with very few 0x0A bytes in it) it could become time-consuming. You'd
have to measure the performance to see for sure, though.

-- 
Jim Hyslop
Senior Software Designer
Leitch Technology International Inc. ( http://www.leitch.com )
Columnist, C/C++ Users Journal ( http://www.cuj.com/experts )




reply via email to

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