当前位置: 首页 > 工具软件 > vss2svn > 使用案例 >

SVN与VSS并用进行代码管理

柯昆杰
2023-12-01

Before Start 

  • VisualSVN Server
  • Tortoise SVN + WinMerge

Let's Go

    由于新单位采用的是VSS进行代码管理(别问我为什么这个年代还在用VSS),让用习惯了SVN的我非常不习惯。而且VSS在我目前搜索到的资料来看,并没有“本地副本”这一种说法,而且文件对比之后非常麻烦,如果我仅想提交一部分代码那是相当相当的困难,这么看来,我就只能本地搭一个SVN库来管理我的代码了。

    思路是这样子的:

  1. 利用VSS设定工作目录之后(Set Working Folder),获取服务器上最新的版本,以此作为基准版本;
  2. 本地工作的时候直接进行代码编辑; 
  3. 在VSS Explorer界面,将当前所有的Check out全部undo,对本地文件操作选择“Leave”,确保本地的修改全部不动;
  4. 用SVN与基准版本作比较,确认哪些是必要修改之后,先提交本地SVN库;
  5. VSS选择check out,然后比较差异,确认差异就是自己的修改内容之后,选择check in,填写comment。

这样一来可能工作会变得繁琐了一点,但是这样子代码比较和合并就可以利用SVN的优势,用本地副本进行代码编辑管理,非常方便!!!!


部署

    其实只需要Tortoise SVN也是可以的,Tortoise SVN自己就可以建Repository,但是我还是习惯用VisualSVN Server来进行项目库的管理,因为他可以建账号。这样后面如果万一有其他的东西要share出去的话,可以用账号来share。

    然后每个Repository都能指定哪些用户可以访问,这些都是简单的搭建,就随意就好。

    并不是很推荐直接用Add To 的功能添加VSS中Get出来的项目文件夹,因为有相当大量的无用文件,建议还是先建好SVN的目录之后,check出来,再在VSS中指定工作路径导出,然后SVN Add。


Hooks

    SVN的hooks很好用,而且因为实在本地提交svn,避免占用太大空间的话,很多冗余文件都不应该提交。所以可以利用Hooks进行操作。

    温馨提示:编写hooks的时候自己检查一下有没有语法错误,我就是因为网上拷贝的脚本直接用然后发现了几个语法问题。

    参考:

    使用SVN钩子强制提交日志和限制提交文件类型

    SVN强制添加日志出现E205000错误解决方法

    以及,第一个文章中的链接,要将它的bin目录,修改成为自己的Visual SVN Server的bin目录,注意后面不要有多余的空格和引号,否则就会出现“ pre-commit hook (exit code 255) ”。那个脚本也应该添加VSS特有的文件scc, vspscc之类的后缀。

 类似资料: