convert_svn ("release early" edition)

Daniel Holth dholth at fastmail.fm
Sun Jul 1 10:02:40 CDT 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Brendan Cully wrote:

>
> Excellent. Here's a patch that makes it appear to function with my
> subversion 1.4.3 swig bindings. The 'mark' messages look not quite
> right, and it gobbles an absolutely insane amount of RAM even
> converting 100 revisions at a time on my powerbook, but it seems to
> be working. I don't understand its approach to branches though. It
> seems like maybe it should get the last revisions for trunk and
> subdirectories of branches and use those as heads?

You understand you have to point it at
file:///path/to/repos/branches/branch@REV and
file:///path/to/repos/trunk@REV and so on until you've converted all
the interesting branches.

It follows the log all the way back to revision 0 every time because
it doesn't yet have a place to put any cached information, and the
convert doesn't yet tell it anything about what has been converted
already. The first revision of /branches/branch/ in the repository
will say "copied from /trunk at REV" and in that way the converter finds
all the parent revisions back to 0.

But it spends a lot more time going through the log to convert all the
directory add/removes into a list of every file inside that directory
that was modified. It also does this for the entire log every time
which is of course a terrible waste.

The "mark" messages are for when a directory was copied from a
location at rev, and something within that directory was modified at the
same time. It has to know the old path and revision of the parent
directory to learn about the modified entry in that directory.

- - Daniel
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGh8IQVh4W2pVfoMsRAh5UAJ9T9j2YiYFzILn9jWo1/xjNdqz/HQCeOE5+
tCXYLT33LdcZLCX+J27HE1U=
=1pxi
-----END PGP SIGNATURE-----


More information about the Mercurial-devel mailing list