-
Use cvs export instead of checkout as indicated in subversion's FAQ. So you wont get CVS subdirectories
- Before starting, add CVS and .cvsignore to the global subversion ignore list
- Check for auto-props in the subversion config file. If you set the svn:eol-style to "native" and svn:keywords to "Id" for your source files then you might save a lot of manual work later.
- Then create the initial folder structure in svn (trunk/branches/tags).
- Check out the new trunk from the svn repository to an empty directory.
This way you have a working copy, which makes the next steps easier.
- Get the project files from CVS into this SVN working copy. If you checkout from cvs, you can use this working copy as a shared working copy to transfer future changes from cvs to svn. If you use cvs export, then you only convert the current cvs "snapshot" to svn.
- You should verify that all text files your project are using 8 bit character sets like ASCII, Latin, ANSI or UTF-8. Subversion can not handle UTF-16 files as text files. You can store them in the svn repository, but only as binary files (that means no CRLF conversion, no keyword expansion, no textual diff).
- Now ADD (not import) the project to svn.
- A nice idea is to create a tiny script that recurses through the project folders (after it has been added to the SVN repository) and does something like
svn propset svn:ignore -F .cvsignore . . See the attached script which does just that :-)
@echo off
echo This program imports all .cvsignore contents into the svn:ignore property.
echo.
echo Current directory: "%cd%"
echo.
pause
echo.
echo Searching ...
call :CheckCVS "%cd%"
for /D /R %%i in (*) do call :CheckCVS "%%i"
echo Done
:: Ende
goto :eof
:CheckCVS
set _cvs=%~1\.cvsignore
echo Path "%~1"
if exist "%_cvs%" (
echo setting "%_cvs%"
svn propset svn:ignore -F "%_cvs%" "%~1"
)
set _cvs=
goto :eof
This converts the CVS ignore list to the correct subversion ignore properties.