RISC OS CVS to GIt converter.
Timothy Baldwin (184) 242 posts |
No, it (probably) doesn’t run on RISC OS. It does (mostly) convert the RISC OS Open CVS repository to one or many Git repositories. It currently has a few problems, and I have not tried to compile it’s output yet. It is available at my GitHub Page. Problems:
To do:
|
David Boddie (1934) 222 posts |
Interesting. I’ve been using “hg convert” to convert the RISC OS repositories in Mercurial repositories. Perhaps there’s a similar extension for git. |
Jeffrey Lee (213) 6048 posts |
There are a few standard ways of converting CVS repos to Git (“git cvsimport”, “cvs2git”, etc.), but for a repo that’s composed of lots of different independent components like the ROOL CVS the results will likely be less than satisfactory: https://www.riscosopen.org/forum/forums/5/topics/3733 Timothy’s tool seems to be a bit different to the approach Theo suggests in the above thread (one branch per component vs. one repo per component). My gut instinct says that having one repo per component would make things easier to work with, but it looks promising nonetheless. Nice work, Timothy!
I guess one test you could easily automate would be to see whether the results of running “checkout <foo>” using ROOL’s CVS scripts matches up with the results of a similar git checkout script, for both the current version of each product file and for older versions of product files which use tagged components (e.g. the stable ROM/disc product files) |
Steffen Huber (91) 1953 posts |
How big is the resulting Git blob if you put everything into one repo? When we converted our mid-sized (but old) CVS project to Git at work, we ended up with a multi-GiB Git repo, and performance for several Git operations like viewing the history of a specific file was underwhelming. |
Timothy Baldwin (184) 242 posts |
I tried many of the existing tools to convert the RISC OS kernel, and they all made a mess of it.
About 120MB, smaller than the gzipped tarred CVS repository at 129MB. |