鉴于使用HgSubversion无法从SVN服务器获取版本,我找到了另外一个方法能解决公司使用SVN与自己携带方式编码的平衡点:同时使用SVN与HG进行代码管理。
在现有的SVN文件夹下,创建HG的代码库,编辑.hgignore文件,一般对于VC项目,可以这样参考这样的写法
*中文为注释,不要写入文件
glob:.hgignore 忽略.hgignore本身
glob:.svn 忽略所有的svn管理文件
glob:*.user 本地用户配置文件
glob:*.suo solution本地配置文件
glob:*.ncb Intelisence库
glob:*.exe exe可以由代码生成
glob:*.dll dll可以由代码生成
glob:game/Lib 直接忽略lib里所有文件
glob:game/Obj 直接忽略obj里所有文件
这里的glob就是通配符,也可以使用工具做正则表达式
.hgignore可以由乌龟shell菜单中的Edit ignore filter来管理,而且还可以时时查看修改情况,可惜的是右边的结果居然没有排序功能……所以我的一般做法是直接在根目录Commit,在列表中查看filter结果是否正确
确认无误后,直接将代码提交到hg代码库,以后代码做修改时,SVN与HG会同时侦测到文件修改。一般可以自己认为HG是大的版本,而SVN是小的版本即可。 当需要带走版本时,只需要直接拷贝hg目录,或者用clone指令即可。别人需要获得一份干净的稳定版本,也可以新建一个HG版本库,从这个混合库中pull过去
这种做法在git+svn也是一样的,:)