Import CVS project into existing Subversion repository

svn repository
You may know that I've migrated from an RCS system to a Subversion (SVN) version control system. I migrated our RCS archive into a stand-alone, read-only, svn repository for reference purposes (using cvs2svn --use-rcs) and copied all the files I personally needed into its own project folder in svnrepo/trunk/myproject. Since then I've been trying to get others to make the switch too.

The other day, a colleague asked if I could transfer his files. He had kept using RCS after my import, so I tried to import his project into a separate folder off the main svnrepo trunk. I figured cvs2svn would let me set a destination directory. Well... it doesn't.

I had a little discussion on the cvs2svn Mailing List. I thought it was my fault or ignorance. Turns out that you can't directly import a project into a specific svnrepo sub folder. And while it could be built, you have to realize something:
The entire import would come chronologically after everything up to that point. All tags, branches and comments would be "moved" to the moment of import, regardless of their original commit.

If that is ok, or something you can live with, compared to not having the project inside your main svnrepo, that's fine too and you can go ahead. You'll still need to write the function though.

There is a work-around too, though, although it is a bit more involved. It converts your RCS repo to a new, separate svn repo. You checkout those files again and svn add or svn import those into the main svn repo, where you'd like them.

No comments: