I have some old personal/proprietary code that I want to "promote" to open-source.
But I'd really like to preserve (and publish) the full CVS history... is this possible through Google Code's SVN repository?
I have some old personal/proprietary code that I want to "promote" to open-source.
But I'd really like to preserve (and publish) the full CVS history... is this possible through Google Code's SVN repository?
Although it does not answer your specific scenario, the following may be a reasonable alternate way to approach your needs:
Google code does support Mercurial (can turn on in project management tab), and mercurial has a convert mechanism (that you can enable) to import from other systems, including CVS. So I think this is doable in google code if you are okay with Mercurial.
I have recently been going through an SVN to Mercurial conversion, and now believe it is worth looking at if hosting in google code. I think this subversion re-education gives a decent overview of why you should care.
You'll have to do that in two steps: first convert your repository from CVS to Subversion, then import the existing subversion repository. From the FAQ:
How can I import a CVS repository into my project?
The cvs2svn tool is a well-established tool to convert CVS history to Subversion history. Use it to create a Subversion repository, and then use the svnsync to push the Subversion history up to your Google Code repository. (See "How do I import existing Subversion history?")
Then check the entry just above:
How do I import an existing Subversion repository?
To upload the history of an existing Subversion repository, use the svnsync tool that ships with Subversion 1.4 or later. Run svnsync help to read more about this tool.
Note that your Google Code repository must be reset to revision 0 for this to work. Your project's Source tab will display instructions on how to reset the repository yourself. (Note: you must be a project owner to reset your own repository, and also to push code up with svnsync.)
Here's a sample transcript that demonstrates how you can push history from an existing repository (located at file:///my/repos) to your repository on Google Code:
$ svnsync init --username YOURUSERNAME https://YOURPROJECT.googlecode.com/svn file:///path/to/localrepos Copied properties for revision 0. $ svnsync sync --username YOURUSERNAME https://YOURPROJECT.googlecode.com/svn Committed revision 1. Copied properties for revision 1. Committed revision 2. Copied properties for revision 2. [...]
When prompted for your password, use your googlecode.com password, which can be found on the settings tab of your profile page.
Running svnsync on a large repository will take a significant amount of time. If you are disconnected during the process, you may see the error message "svnsync: Couldn't get lock on destination repos after 10 attempts". If this happens, you can remove the lock yourself; see the "Locks" section of svnsync.txt.