转换CVS到subversion

安装和配置就没有什么好说的了。说一些自己的看法和一些注意事项

比起CVS来说确实简洁多了,加上copy/move的功能,比较符合使用习惯。
对于中文的支持也非常好,而且服务器能通过SSH协议操作,安全,方便。
客户端有TortoiseSVN和TortoiseCVS几乎一样,没有过渡时期的痛苦。
所以打算把原来的CVS项目给转过来。

使用工具:cvs2svn
这个工具是使用python写的,需要安装python,我的系统是win2000 Pro,
安装了python2.2(其实之前用WinCVS就装过了)。自己把python的路径加入
到PATH。另外由于转换需要RCS的命令co,我系统当然没有,装了一个
cygwin+CVS,用于替代。我想用windows版本的CVS命令应该也可以。同时
把cygwin的bin也加入到PATH。
命令的参数如下:
--use-cvs 使用cvs命令替代co命令,速度比co要慢
--trunk-only 仅转主分支,tag和branch不要,否则生成目录太乱。
--tmpdir=./tmp 指定临时目录。
在我自己的项目上运行,结果提示我无法转化,因为我的log是用的中文
写的,昏倒。到他网站mails-list总算找到问题,需要参数:
--encoding=cp936
在次运行,结果还是不行!
在次查找,原来是python不支持cp936,升级到python3.4解决。
项目挺多,转的时候只有等待了,顺便看看他的文档。

着重看了自己关注的问题,ignore list,项目管理(指令,权限,树结构)
ignore,发现比较麻烦,需要自己写配置文件,或者加入到注册表!
配置文件在%AppData%/Subversion的config文件中。后来发现TortoiseSVN
里面自己带了配置的地方,就用这里了,还是习惯用GUI界面:-)
管理指令就是svnadmin,用法也挺简单,create建立一个仓库就好了。一些
常用命令如下:
create  建立仓库
deltify 删除仓库
dump    打印仓库数据到标准输出,用来在版本升级用
recover 修复仓库,一些异常情况回照成仓库死锁
仓库结构和CVS有区别,因为SVN的tag和branch是用copy完成的,生成一个单独
的目录,不象CVS仅是一个标记。基本推荐两种方式:
root--trunk
      --项目0..n
    --tags
      --项目0..n
    --branches
      --项目0..n
或者
root--项目0..n
      --trunk
      --tags
      --branches
个人喜欢后一种,还有一个特别注意的是,CVS基本上把所有的项目放到一个
仓库,他们之间的版本号互相不影响,但是SVN不一样!他是一个仓库公用一个
全局的数字版本号!每个项目的提交(tag/branch/del等操作)都会+1,比如一个
项目非常活跃,仓库版本将会非常大,但是另外一个项目根本没有更新过,但是
一旦提交,版本号会非常高。不过不影响使用,毕竟是根据项目来查看日志等
操作。
SVN还带有一个特殊的东西,属性。可以给项目/目录/文件设置,而且也象项目
文件一样,会保存的,有历史记录的。比如项目发布了,加一个release "xxx"
就可以了,可以用来替代tag了。还有一些特殊的属性,以svn:开头,svn:log表
示历史记录,一般情况是不能修改的,但是如果有管理员的支持,可以把以前的
提交的错误提示修改掉。
SVN也和CVS一样,可以在提交等操作的时候检查/添加自己的一些处理,这个在仓
库的目录hooks中,其中就有支持svn:log的设置参数。

你可能感兴趣的:(源码管理)