Re: Call for testing: cvs2bzr

Michael Haggerty <[email protected]>
Newsgroups gmane.comp.version-control.subversion.cvs2svn.devel,gmane.comp.version-control.bazaar-ng.general
Message-ID <[email protected]>
Greg Ward wrote:
> On Wed, Aug 19, 2009 at 12:30 AM, Ian
> Clatworthy<[email protected]> wrote:
>> That's pretty well it. We *could* handle a separate blobs file but it's
>> nicer w.r.t. memory consumption for us to go the inline blob path ala
>> hg. Unlike hg though, bzr has no limitations w.r.t. merge parent count.
> 
> But keep in mind that inline blobs make the dump file much much
> larger.

There doesn't seem to be a fundamental reason why this should be the
case.  In most cases, the blobs for different file revisions should be
different and have to be written anyway.  I suppose that the reason is
that during branch and tag creation, the filesystem contents are not
implied copied from the primary parent branch but rather created afresh.
 This does not create much overhead when using git and a separate blob
file (i.e., the original implementation), and in fact it saved cvs2git
some work in OutputPass.  But of course it is quite expensive if each
blob has to be output again for each branch/tag creation.

So I suggest that we work to make cvs2bzr avoid writing redundant blobs
when possible, rather than introducing yet another caching mechanism on
the importer side.

> (My "clever" idea for handling blobs: keep a dict mapping blob mark to
> file offset.  Then when we need a blob, seek to that offset and read
> the required number of bytes.  Never got around to implementing this,
> and I'm not sure if it would save much I/O.  Fewer writes I suppose.)

Regarding in-memory maps: The largest cvs2svn conversion that I know of
was KDE, which had about 3.3M CVS file revisions resulting in about 409k
Subversion commits.  If you want cvs2bzr and cvs2hg to be able to handle
conversions of this size, you have to be careful about what you keep in
memory.  On the other hand, one could argue that when using bzr and hg,
one typically wouldn't keep so many sub-projects in a single repository;
perhaps the largest cvs2bzr and cvs2hg conversions will be considerably
smaller.

Michael

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1667&dsMessageId=2385790

To unsubscribe from this discussion, e-mail: [[email protected]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.