Bo Berglund
2017-12-25 14:41:01 UTC
I am working on converting eight CVS repositories to Subversion.
The CVS repositories are managed by CVS(nt) on Windows Server 2016,
migrated there 2 months ago from a Windows Server 2003.
The new version control server is also running VisualSVN with
Subversion 1.9.7.
To do the conversion I am using cvs2svn version 2.5.0 on an Ubuntu
16.04.3 LTS Server. Python on the Ubuntu machine is the 2.7.12
version.
Prior to conversion I have committed all of the uncommitted changes I
have done myself and I have requested the developers to also commit
all of their changes.
The procedure I used to convert each repository is this:
- Copy the repository files to a migration folder
- Remove projects not needed in the conversion
- Remove all CVS subdirectories in the repository (otherwise errors)
- Remove all top level files so only subdirectories remain
- Create a zipfile for the repository folder using 7zip
- Copy the repository zipfiile to the Ubuntu 16 server
- Expand the zip on Ubuntu into a migration folder
- Run cvs2svn using an options file to create all projects as
subrepositories in the main target repository
- gzip the resulting dump file
- Copy the dump file back to the Windows 2016 server
- Use the VisualSVN management console to import the dump file to a
new repository
All of this worked without any visible problems. But it took quite
some time to do...
Now I wonder what will happen if some developer commits changes to the
old CVS server....
Is it possible to update a Subversion repository with the new data
somehow? (Except by manually copying the files to a svn working copy
and committing from that). I would like to do this server side.
I could use robocopy on the CVS repository to extract files that have
changed after I made the migration into a folder structure that
exactly mirrors the repo structure.
If I use cvs2svn on these changed files (probably a small number of
files) can then the resulting dump file be used to "mirror" the new
commits in CVS to the Subversion version?
Or is there some other way?
The CVS repositories are managed by CVS(nt) on Windows Server 2016,
migrated there 2 months ago from a Windows Server 2003.
The new version control server is also running VisualSVN with
Subversion 1.9.7.
To do the conversion I am using cvs2svn version 2.5.0 on an Ubuntu
16.04.3 LTS Server. Python on the Ubuntu machine is the 2.7.12
version.
Prior to conversion I have committed all of the uncommitted changes I
have done myself and I have requested the developers to also commit
all of their changes.
The procedure I used to convert each repository is this:
- Copy the repository files to a migration folder
- Remove projects not needed in the conversion
- Remove all CVS subdirectories in the repository (otherwise errors)
- Remove all top level files so only subdirectories remain
- Create a zipfile for the repository folder using 7zip
- Copy the repository zipfiile to the Ubuntu 16 server
- Expand the zip on Ubuntu into a migration folder
- Run cvs2svn using an options file to create all projects as
subrepositories in the main target repository
- gzip the resulting dump file
- Copy the dump file back to the Windows 2016 server
- Use the VisualSVN management console to import the dump file to a
new repository
All of this worked without any visible problems. But it took quite
some time to do...
Now I wonder what will happen if some developer commits changes to the
old CVS server....
Is it possible to update a Subversion repository with the new data
somehow? (Except by manually copying the files to a svn working copy
and committing from that). I would like to do this server side.
I could use robocopy on the CVS repository to extract files that have
changed after I made the migration into a folder structure that
exactly mirrors the repo structure.
If I use cvs2svn on these changed files (probably a small number of
files) can then the resulting dump file be used to "mirror" the new
commits in CVS to the Subversion version?
Or is there some other way?
--
Bo Berglund
Developer in Sweden
Bo Berglund
Developer in Sweden