Prerequisites and Procedures for Migrating to Subversion from CVS
Subversion will be used for version control. The source code will be maintained inside a subversion repository.
The Apache HTTP server will be used to allow remote users to access the repository. There are other server options for subversion, however, apache provides the following benefits that maybe important to OpenACS.
- Network traffic can be encrypted via SSL and HTTP(S).
- Full Apache logging.
- Numerous authentication systems integrated with Apache
- No need to create system accounts for users
SvnMerge.py for tracking merges between branches. (http://www.orcaware.com/svn/wiki/Svnmerge.py)
Svn2log to generate changelogs. (http://www.core.com.pl/svn2log/)
ViewVC will be used to view the code in the repository. (http://viewvc.tigris.org/)
Experienced users on linux can use the svn command line client to checkout, update and commit code , or a graphical interface like TkSVN (http://www.twobarleycorns.net/tkcvs.html), while users on windows can use tortoisesvn (http://tortoisesvn.tigris.org/).
Outline of Actions for Repository Transition
- Run cvs2svn on a copy of OpenACS CVS repository. (This will take a while depending on how much data is in the CVS repository)
- There will most likely be errors reported in some of the history files. When I ran a test there were references in the history file to revisions that don't exist in the repository. The history file can be edited to remove the invalid entry. Then cvs2svn needs to be run again until all these problems are fixed.
- The error message will have a long traceback of python code then end in someting like:
- KeyError: '22.214.171.124' The beginning of the error message will tell you which file it stopped at. Edit the file and remove entries for the revision in the KeyError message.
- Fix error in commitinfo,v delete revision info for 1.1
- New error message
----- pass 2 (CollateSymbolsPass) -----
Checking for blocked exclusions...
Checking for forced tags with commits...
----- pass 3 (ResyncRevsPass) -----
Re-synchronizing CVS revision timestamps...
ERROR: Key 198L not found within items currently accessible.
- Install Apache with HTTP Auth.
- Setup ViewVC
- Point Apache and ViewVC to the new SVN repository converted from SVN
- Create users who can access the repository on Apache
- Rewrite Release documentation for SVN https://openacs.org/doc/releasing-openacs-core.html
Outline of Actions for openacs.org Instance
- change interface for nightly builds of repository
- update documentation from cvs-guidelines to svn-guidelines
- For historical reasons, keep the CVS repository alive and in sync for a while: http://sam.zoy.org/writings/programming/svn2cvs.html