<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://grasswiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E2%9A%A0%EF%B8%8FGclements</id>
	<title>GRASS-Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://grasswiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E2%9A%A0%EF%B8%8FGclements"/>
	<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/wiki/Special:Contributions/%E2%9A%A0%EF%B8%8FGclements"/>
	<updated>2026-07-10T01:05:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Migration_from_CVS_to_SVN&amp;diff=5007</id>
		<title>Migration from CVS to SVN</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Migration_from_CVS_to_SVN&amp;diff=5007"/>
		<updated>2007-10-22T18:08:09Z</updated>

		<summary type="html">&lt;p&gt;⚠️Gclements: fix typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains notes related to GRASS code migration (planned) from CVS to SVN.&lt;br /&gt;
&lt;br /&gt;
== Basic ==&lt;br /&gt;
&lt;br /&gt;
* The SVN command line interface is just like CVS, many tasks are identical- just change the program name from cvs to svn.&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* 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 ...).&lt;br /&gt;
 $ svn propset svn:keywords &amp;quot;Date&amp;quot; filename.txt&lt;br /&gt;
 $ svn commit&lt;br /&gt;
&lt;br /&gt;
* how to maintain timestamps of files? We want to keep the last modification date, not the date of local download&lt;br /&gt;
&lt;br /&gt;
== GRASS CVS repository structure ==&lt;br /&gt;
&lt;br /&gt;
 /grass-cvs&lt;br /&gt;
 |&lt;br /&gt;
 +---/CVSROOT&lt;br /&gt;
 |&lt;br /&gt;
 +---/grass&lt;br /&gt;
 |&lt;br /&gt;
 +---/grass51&lt;br /&gt;
 |&lt;br /&gt;
 +---/grass6&lt;br /&gt;
 |&lt;br /&gt;
 +---/grass_doc&lt;br /&gt;
 |&lt;br /&gt;
 +---/libgrass&lt;br /&gt;
 |&lt;br /&gt;
 +---/newsletter&lt;br /&gt;
 |&lt;br /&gt;
 +---/programgrass50&lt;br /&gt;
 |&lt;br /&gt;
 +---/web&lt;br /&gt;
&lt;br /&gt;
== Testing SVN repository ==&lt;br /&gt;
&lt;br /&gt;
* grass/grass should be renamed to grass/grass5&lt;br /&gt;
&lt;br /&gt;
'''Question:'''&lt;br /&gt;
* Migrate all directories or only actively used (grass, grass6, newsletter, web)?&lt;br /&gt;
* Create separate repositories (grass5, grass6, grassweb, grassnewsletter, grass7) or one repository (grass-svn)?&lt;br /&gt;
&lt;br /&gt;
=== Proposed structure ===&lt;br /&gt;
&lt;br /&gt;
 /grass-svn&lt;br /&gt;
 |&lt;br /&gt;
 +---/grass5&lt;br /&gt;
     |&lt;br /&gt;
     +---/branches&lt;br /&gt;
     |&lt;br /&gt;
     +---/tags&lt;br /&gt;
     |&lt;br /&gt;
     +---/trunk&lt;br /&gt;
 +---/grass6&lt;br /&gt;
     |&lt;br /&gt;
     +---/branches&lt;br /&gt;
     |&lt;br /&gt;
     +---/tags&lt;br /&gt;
     |&lt;br /&gt;
     +---/trunk&lt;br /&gt;
 +---/grass7&lt;br /&gt;
     |&lt;br /&gt;
     +---/branches&lt;br /&gt;
     |&lt;br /&gt;
     +---/tags&lt;br /&gt;
     |&lt;br /&gt;
     +---/trunk&lt;br /&gt;
 +---/newsletter&lt;br /&gt;
     |&lt;br /&gt;
     +---/branches (???)&lt;br /&gt;
     |&lt;br /&gt;
     +---/tags&lt;br /&gt;
     |&lt;br /&gt;
     +---/trunk&lt;br /&gt;
 +---/web&lt;br /&gt;
     |&lt;br /&gt;
     +---/trunk&lt;br /&gt;
&lt;br /&gt;
=== Copy of GRASS CVS repository ===&lt;br /&gt;
&lt;br /&gt;
 rsync -r --times --links --bwlimit=200 rsync://rsync.intevation.de/grass grass-cvs&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr; cca 600 MB!&lt;br /&gt;
&lt;br /&gt;
=== Creating GRASS SVN repository ===&lt;br /&gt;
&lt;br /&gt;
==== grass5 ====&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 -s grass5svn grass-cvs/grass&lt;br /&gt;
&lt;br /&gt;
'''Question:''' exclude selected branches/tags (which one?)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr; '''[http://josef.fsv.cvut.cz/cgi-bin/viewcvs.cgi/?root=grass5svn grass5svn]'''&lt;br /&gt;
&lt;br /&gt;
==== grass6 ====&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 -s grass6svn grass-cvs/grass6&lt;br /&gt;
 ...&lt;br /&gt;
 Error summary:&lt;br /&gt;
 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&lt;br /&gt;
 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&lt;br /&gt;
 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&lt;br /&gt;
 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&lt;br /&gt;
 Exited due to fatal error(s).&lt;br /&gt;
ERROR: A CVS repository cannot contain both grass-cvs/grass6/visualization/nviz/src/tmp,v and grass-cvs/grass6/visualization/nviz/src/Attic/tmp,v&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
&lt;br /&gt;
* [http://cvs2svn.tigris.org/faq.html#atticprob cvs2svn FAQ]&lt;br /&gt;
&lt;br /&gt;
'''Question:''' Remove Attic files?&lt;br /&gt;
&lt;br /&gt;
 rm -f grass-cvs/grass6/display/d.erase/Attic/main.c,v&lt;br /&gt;
 rm -f grass-cvs/grass6/general/g.mapsets/Attic/main_inter.c,v&lt;br /&gt;
 rm -f grass-cvs/grass6/include/Attic/gproj_api.h,v&lt;br /&gt;
 rm -f grass-cvs/grass6/visualization/nviz/src/Attic/getCat.c,v&lt;br /&gt;
 rm -f grass-cvs/grass6/visualization/nviz/src/Attic/tmp,v&lt;br /&gt;
&lt;br /&gt;
Restart&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 -s grass6svn grass-cvs/grass6&lt;br /&gt;
 ...&lt;br /&gt;
 ----- pass 2 (CollateSymbolsPass) -----&lt;br /&gt;
 ERROR: It is not clear how the following symbols should be converted.&lt;br /&gt;
 Use --force-tag, --force-branch and/or --exclude to resolve the ambiguity.&lt;br /&gt;
    'releasebranch_6_2' is a tag in 2 files, a branch in 5259 files and has commits in 1513 files&lt;br /&gt;
&lt;br /&gt;
Restart&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --force-branch=releasebranch_6_2 \&lt;br /&gt;
 -s grass6svn grass-cvs/grass6&lt;br /&gt;
&lt;br /&gt;
Exclude all [http://grass.itc.it/devel/cvstags.php undocumented] braches&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol &lt;br /&gt;
 --force-branch=releasebranch_6_2 \&lt;br /&gt;
 --exclude=&amp;quot;grass&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;grassreleasebranch_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;markus&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_14_august_2001_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_26_april_2002_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_5_4&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;unlabeled.*&amp;quot; \&lt;br /&gt;
 -s grass6svn1 grass-cvs/grass6&lt;br /&gt;
 ...&lt;br /&gt;
 ----- pass 2 (CollateSymbolsPass) -----&lt;br /&gt;
 Checking for blocked exclusions...&lt;br /&gt;
 ERROR: The branch 'markus' cannot be excluded because the following symbols depend on it:&lt;br /&gt;
     'start'&lt;br /&gt;
     'releasebranch_11_april_2001_5_0_0'&lt;br /&gt;
 ERROR: The branch 'grass' cannot be excluded because the following symbols depend on it:&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --force-branch=releasebranch_6_2  \&lt;br /&gt;
 --exclude=&amp;quot;grass&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;grassreleasebranch_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;markus&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_14_august_2001_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_26_april_2002_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_5_4&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;unlabeled.*&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;devices_cleanup_20000420&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;post_compare_glynn_head_2002_11_27&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;post_compare_glynn_release_2002_11_27&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;post_merge_head_2002_01_22&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;post_sync_2002_01_22&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre-curses-fix&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre_merge_head_2002_01_22&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre_merge_release_2002_01_22&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre_sync_2001_10_31&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre_sync_2002_01_17&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_03_11_2003_grass5_0_3&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_05_11_2004_grass5_4_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_10_04_2003_grass5_0_2&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_13_may_2002_grass5_0_0_pre4&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_13_september_2001_grass5_0_0_pre2&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_15_05_2004_grass5_3_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_16_january_2002_grass5_0_0_pre3&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_17_06_2004_grass5_7_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_25_06_2002_grass5_0_0_pre5&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_28_01_2003_grass5_0_1&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_30_08_2002_grass5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_11_april_2001_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_11_april_2001_5_0_0_DEAD&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_500&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass500pre1_20_may_2001&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta10_7_december_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta11_4_february_2001&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta11pre1_21_january_2001&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta11pre2_28_january_2001&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta6_16_feb_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta7_20_april_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta8_26_july_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta9_6_december_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;start&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;testbranch_5_0_0stable&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;unlabeled-1.1.1.1.4&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;unlabeled-1.1.1.1.6&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;color_changes_20010502&amp;quot; \&lt;br /&gt;
 -s grass6svn grass-cvs/grass6&lt;br /&gt;
&lt;br /&gt;
'''Question:''' Exclude more tags (which)?&lt;br /&gt;
&lt;br /&gt;
Add other switches (e.g. &amp;lt;tt&amp;gt;--encoding&amp;lt;/tt&amp;gt;) ??&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --force-branch=releasebranch_6_2  \&lt;br /&gt;
 --exclude=&amp;quot;grass&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;grassreleasebranch_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;markus&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_14_august_2001_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_26_april_2002_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_5_4&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;unlabeled.*&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;devices_cleanup_20000420&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;post_compare_glynn_head_2002_11_27&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;post_compare_glynn_release_2002_11_27&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;post_merge_head_2002_01_22&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;post_sync_2002_01_22&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre-curses-fix&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre_merge_head_2002_01_22&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre_merge_release_2002_01_22&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre_sync_2001_10_31&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre_sync_2002_01_17&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_03_11_2003_grass5_0_3&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_05_11_2004_grass5_4_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_10_04_2003_grass5_0_2&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_13_may_2002_grass5_0_0_pre4&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_13_september_2001_grass5_0_0_pre2&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_15_05_2004_grass5_3_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_16_january_2002_grass5_0_0_pre3&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_17_06_2004_grass5_7_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_25_06_2002_grass5_0_0_pre5&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_28_01_2003_grass5_0_1&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_30_08_2002_grass5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_11_april_2001_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_11_april_2001_5_0_0_DEAD&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_500&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass500pre1_20_may_2001&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta10_7_december_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta11_4_february_2001&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta11pre1_21_january_2001&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta11pre2_28_january_2001&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta6_16_feb_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta7_20_april_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta8_26_july_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta9_6_december_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;start&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;testbranch_5_0_0stable&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;unlabeled-1.1.1.1.4&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;unlabeled-1.1.1.1.6&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;color_changes_20010502&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 -s grass6svn grass-cvs/grass6&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr; '''[http://josef.fsv.cvut.cz/cgi-bin/viewcvs.cgi/?root=grass6svn grass6svn]'''&lt;br /&gt;
&lt;br /&gt;
==== newsletter ====&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 -s grassnlsvn grass-cvs/newsletter&lt;br /&gt;
&lt;br /&gt;
'''Question:''' exclude branch &amp;quot;markus&amp;quot; and tags &amp;quot;Final_version&amp;quot;, &amp;quot;ready_for_grammar_spelling_correction&amp;quot; and &amp;quot;start&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --exclude=&amp;quot;markus&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;Final_version&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;ready_for_grammar_spelling_correction&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;start&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 -s grassnlsvn grass-cvs/newsletter&lt;br /&gt;
 ...&lt;br /&gt;
 Checking for blocked exclusions...&lt;br /&gt;
 ERROR: The branch 'markus' cannot be excluded because the following symbols depend on it:&lt;br /&gt;
     'volume1_final'&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Cannot exclude branch &amp;quot;markus&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --exclude=&amp;quot;Final_version&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;ready_for_grammar_spelling_correction&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;start&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 -s grassnlsvn grass-cvs/newsletter&lt;br /&gt;
&lt;br /&gt;
'''Questions:'''&lt;br /&gt;
* Rename brach &amp;quot;markus&amp;quot;?&lt;br /&gt;
* Rename tags &amp;quot;volume[1|2]_final&amp;quot; to &amp;quot;release_vol[1|2]&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr; '''[http://josef.fsv.cvut.cz/cgi-bin/viewcvs.cgi/?root=grassnlsvn grassnlsvn]&lt;br /&gt;
&lt;br /&gt;
==== web ====&lt;br /&gt;
&lt;br /&gt;
cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 -s grasswebsvn grass-cvs/web&lt;br /&gt;
 ...&lt;br /&gt;
 ERROR: A CVS repository cannot contain both grass-cvs/web/bugtracking/index.html,v and grass-cvs/web/bugtracking/Attic/index.html,v&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
'''Question:''' Remove Attic file?&lt;br /&gt;
&lt;br /&gt;
 rm -f grass-cvs/web/bugtracking/Attic/index.html,v&lt;br /&gt;
&lt;br /&gt;
'''Question:''' Ignore branches (&amp;quot;markus&amp;quot;) and tags (&amp;quot;start&amp;quot;)?&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --trunk-only \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 -s grasswebsvn grass-cvs/web&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr; '''[http://josef.fsv.cvut.cz/cgi-bin/viewcvs.cgi/?root=grasswebsvn grasswebsvn]&lt;br /&gt;
&lt;br /&gt;
==== grass7 ====&lt;br /&gt;
&lt;br /&gt;
Based on grass6 HEAD.&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --force-branch=releasebranch_6_2 \&lt;br /&gt;
 --trunk-only \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 -s grass7svn grass-cvs/grass6&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr; '''[http://josef.fsv.cvut.cz/cgi-bin/viewcvs.cgi/?root=grass7svn grass7svn]'''&lt;br /&gt;
&lt;br /&gt;
==== One repository ====&lt;br /&gt;
&lt;br /&gt;
 svnadmin create grass-svn&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 --branches=grass5/branches \&lt;br /&gt;
 --tags=grass5/tags \&lt;br /&gt;
 --trunk=grass5/trunk \&lt;br /&gt;
 --existing-svnrepos \&lt;br /&gt;
 -s grass-svn grass-cvs/grass&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --force-branch=releasebranch_6_2  \&lt;br /&gt;
 --exclude=&amp;quot;grass&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;grassreleasebranch_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;markus&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_14_august_2001_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_26_april_2002_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_5_4&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;unlabeled.*&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;devices_cleanup_20000420&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;post_compare_glynn_head_2002_11_27&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;post_compare_glynn_release_2002_11_27&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;post_merge_head_2002_01_22&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;post_sync_2002_01_22&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre-curses-fix&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre_merge_head_2002_01_22&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre_merge_release_2002_01_22&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre_sync_2001_10_31&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;pre_sync_2002_01_17&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_03_11_2003_grass5_0_3&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_05_11_2004_grass5_4_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_10_04_2003_grass5_0_2&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_13_may_2002_grass5_0_0_pre4&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_13_september_2001_grass5_0_0_pre2&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_15_05_2004_grass5_3_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_16_january_2002_grass5_0_0_pre3&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_17_06_2004_grass5_7_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_25_06_2002_grass5_0_0_pre5&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_28_01_2003_grass5_0_1&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_30_08_2002_grass5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_11_april_2001_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_11_april_2001_5_0_0_DEAD&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_500&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;releasebranch_5_0_0&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass500pre1_20_may_2001&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta10_7_december_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta11_4_february_2001&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta11pre1_21_january_2001&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta11pre2_28_january_2001&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta6_16_feb_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta7_20_april_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta8_26_july_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;release_grass5beta9_6_december_2000&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;start&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;testbranch_5_0_0stable&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;unlabeled-1.1.1.1.4&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;unlabeled-1.1.1.1.6&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;color_changes_20010502&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 --branches=grass6/branches \&lt;br /&gt;
 --tags=grass6/tags \&lt;br /&gt;
 --trunk=grass6/trunk \&lt;br /&gt;
 --existing-svnrepos \&lt;br /&gt;
 -s grass-svn grass-cvs/grass6&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --exclude=&amp;quot;Final_version&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;ready_for_grammar_spelling_correction&amp;quot; \&lt;br /&gt;
 --exclude=&amp;quot;start&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 --branches=newsletter/branches \&lt;br /&gt;
 --tags=newsletter/tags \&lt;br /&gt;
 --trunk=newsletter/trunk \&lt;br /&gt;
 --existing-svnrepos \&lt;br /&gt;
 -s grass-svn grass-cvs/newsletter&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --trunk-only \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 --trunk=web/trunk \&lt;br /&gt;
 --existing-svnrepos \&lt;br /&gt;
 -s grass-svn grass-cvs/web&lt;br /&gt;
&lt;br /&gt;
 cvs2svn --use-cvs --no-default-eol \&lt;br /&gt;
 --force-branch=releasebranch_6_2 \&lt;br /&gt;
 --trunk-only \&lt;br /&gt;
 --encoding=&amp;quot;ASCII&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;UTF-8&amp;quot; \&lt;br /&gt;
 --encoding=&amp;quot;ISO-8859-1&amp;quot; \&lt;br /&gt;
 --trunk=grass7/trunk \&lt;br /&gt;
 --existing-svnrepos \&lt;br /&gt;
 -s grass-svn grass-cvs/grass6&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr; '''[http://josef.fsv.cvut.cz/cgi-bin/viewcvs.cgi/?root=grass-svn grass-svn]'''&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~sgtatham/svn.html My Experiences With Subversion] by Simon Tatham&lt;br /&gt;
* [http://cvs2svn.tigris.org/cvs2svn.html cvs2svn tool page] &lt;br /&gt;
* [http://www.neogia.org/Cvs_To_Subversion_Migration_Plan Migration plan example]&lt;br /&gt;
&lt;br /&gt;
* Online book: [http://svnbook.red-bean.com/nightly/en/index.html Version Control with Subversion]&lt;br /&gt;
&lt;br /&gt;
== SVN hosting ==&lt;br /&gt;
&lt;br /&gt;
There are two main options to [[SVN hosting|host the new SVN repository]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>⚠️Gclements</name></author>
	</entry>
</feed>