如何把VSS仓库转换到CVS

来源:互联网 发布:网络上修车是什么意思 编辑:程序博客网 时间:2024/05/02 00:42

VSSExtractor的使用
 该工具可以把VSS的工程转化为CVS的工程
 转换需要两个程序,一个是VSS端的VSSExtractor.exe,基于window的平台,
 一个是CVS端的cserver,基于linux.
版本:
 我使用的是0.7.2版本的,本来他的cserver程序需要做cvs的补丁才可以的,这个版本已经直接patch过了,
 而且带了他要求的cvs1.11.1p1,省 去了自己下载cvs在patch的过程了。直接编译就好。window下的
 VSSExtractor.exe直接使用就好了。
配置方法:
 cserver只要配置cserver.conf文件就好
 #
 # Cserver configuration file
 #

 # Ports 默认的就挺好
 [CommandPort] 4555

 # WARNING : data port MUST be command port + 1 默认的就挺好
 [DataPort] 4556

 # CVS repository 改为自己想要生成的cvs工程的目录,不需要是cvs的仓库(CVSROOT目录)
 [Cvsroot] /root/software/cvs/src

 # tmp directory
 [TempDir] /tmp

 # logfile 文件的路径要存在,否则提示不能打开logfile,同时会发生一起奇怪的错误。
 [logFile] /root/software/cvs/cserver.log


 VSSExtractor.exe只要配置VSSExtractor.ini就好
 #
 # VSSExtractor configuration file
 #

 # SourceSafe server repository  你的仓库路径,也就是srcsafe.ini文件所在位置
 [SSDir] E:/VSS仓库

 # Login and password for the SourceSafe server
 # data format is -Ylogin,pass 好象不起作用,必须win系统建立一个同名帐号
 [VSSLOGINPASS] -Ylogin, pass

 # Sourcesafe language, supprted languages are English, Freanch and German
 [VSSLANG] english

 # Local computer parameters  设置VSS的执行程序信息
 [VSSPath] E:/VSS仓库/win32
 [VSSExec] ss.exe
 [Tempdir] c:/temp

 # Conversion server name & port  服务器名字和端口
 [Server] www.redhat24.com
 [Port] 4555

 # Projects to convert - there can be more than one 想要转换的工程,可以多个
 [Project] $/test1
 [Project] $/test2

 # Conversion mode - Toggle to No when you want to use an existing XML file
 [GenerateXML] Yes

 # Edition mode - Toggle to No when you want standard conversion
 [EditXML] Yes

 # Recurse through the project tree ?
 [Recursion] Yes

 # Names for the output files
 [XMLfile] tree.xml
 [Logfile] logfile.txt


 配置好后,先运行cserver,在运行VSSExtractor.exe就行了,剩下的事情会自动完成的。

注意事项:
 必须在VSS建立一个和windows的系统用户同名的帐号,VSSExtractor.exe是用当前登陆用户
 来操作VSS仓库的。
 linux的机器并不需要cvs的服务器就可以,cserver做了所有的事情。

 中间碰到一些奇怪的现象:
 服务器的名字要用dns解析出来的,我是自己安装了一个dns服务器,把www.redhat24.com指
 向我自己的linux机器,查看代码发现,VSSExtractor.exe是用gethostbyname查找server的
 name,然后在通过找到的IP连接服务器。我不知道这个函数是否还用其他的方法找地址。
 我测试过修改hosts文件是不行的。当然也可以通过修改程序在编译解决。记得是NetInterface
 类的函数ConnectServer里面调用的。

 我开始转的时候,老是提示什么DOS路径无效的提示,后来我把vss用户下的ss.ini文件删除
 就好了。他可能通过ss.ini里面的信息checkout文件,ss.ini里面记录了我工程的checkout
 路径。我的工程路径带中文,可能不支持。

 在VSSExtractor.exe分析VSS工程的时候,有些工程老是提示什么parse event[2]的错误,
 工程应该没有问题,我后来是通过把有问题的工程先share为另外一个工程名,在转新的工程
 就没有问题了,照道理他们的历史记录是一样的,比较奇怪。
 
 
 

原创粉丝点击