Migration from CVS to SVN: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
m (→‎Testing SVN repository: solution of attic problem)
(→‎Testing SVN repository: attic problem cvs2svn faq)
Line 40: Line 40:


* In this case, just remove the "repos/Attic/foo,v"
* In this case, just remove the "repos/Attic/foo,v"
* [http://cvs2svn.tigris.org/faq.html#atticprob cvs2svn FAQ]


<center>'''[http://josef.fsv.cvut.cz/cgi-bin/viewcvs.cgi/?root=grass6svn josef.fsv.cvut.cz]'''</center>
<center>'''[http://josef.fsv.cvut.cz/cgi-bin/viewcvs.cgi/?root=grass6svn josef.fsv.cvut.cz]'''</center>

Revision as of 20:29, 9 September 2007

This page contains notes related to GRASS code migration (planned) from CVS to SVN.

Basic

  • The SVN command line interface is just like CVS, many tasks are identical- just change the program name from cvs to svn.

Gotchas

  • cvs2svn is known to break binary files (images) which were not imported into the CVS with the -kb flag. Luckily Glynn fixed most of these some months ago.
  • Files using keyword substitution, such as $Date$ in the description.html files, will have to have support for that enabled manually, once per file (or write a find routine with | xargs svn ...).
$ svn propset svn:keywords "Date" filename.txt
$ svn commit
  • how to maintain timestamps of files? We want to keep the last modification date, not the date of local download

Testing SVN repository

Get copy of GRASS (only GRASS 6 branch) repository

mkdir grass-cvs
cd grass-cvs
rsync -r --times --links --bwlimit=200 rsync://rsync.intevation.de/grass .
cd ..

The testing SVN repository

  • initial stage:
cvs2svn --use-cvs --no-default-eol  -s grass6svn grass-cvs/grass6
Error summary:
ERROR: A CVS repository cannot contain both grass-cvs/grass6/display/d.erase/main.c,v and grass-cvs/grass6/display/d.erase/Attic/main.c,v
ERROR: A CVS repository cannot contain both grass-cvs/grass6/general/g.mapsets/main_inter.c,v and grass-cvs/grass6/general/g.mapsets/Attic/main_inter.c,v
ERROR: A CVS repository cannot contain both grass-cvs/grass6/include/gproj_api.h,v and grass-cvs/grass6/include/Attic/gproj_api.h,v
ERROR: A CVS repository cannot contain both grass-cvs/grass6/visualization/nviz/src/getCat.c,v and grass-cvs/grass6/visualization/nviz/src/Attic/getCat.c,v
Exited due to fatal error(s).

Solution:

  • In this case, just remove the "repos/Attic/foo,v"
  • cvs2svn FAQ
josef.fsv.cvut.cz

External links