17、预览合并:当工作拷贝已经改变,合并会针对存在的那一个文件,这时运行
revert 不会恢复在本地的修改,两部分的修改无法识别出来。解决这个问题的
简单的方法就是使用 diff 来预览变化部分,通过显示合并时的状态信息,得到
合并之后的“整体”预览。
18、svn diff 和 svn merge 的区别:
将 test.doc 版本 100 重命名为 ceshi.doc,同时新建一个文件 test.doc 为版本
102。
这样区别就出来了:
svn diff 命令忽略祖先,diff 命令只是单纯地比较两条路经下的两个文件。
svn merge 是比较两个对象,会注意到版本 100 和版本 102 的 test.doc 两个
文件是不关联的。
19、SVN 并没有真正意义上的重命名,move 命令只是 copy、delete 两个命令
的组合。
20、找回删除的项目:即使删除了文件或目录,SVN 的信息从不丢失,只是从
当前的 HEAD 版本消失了,但仍然存在于历史的早期版本。只要通过 SVN 的
log 来查看所有改变的每个项目的版本,找出你删除文件或目录的那个版本。
21、将所有的开发代码存放在 trunk 上。
常用分支模式:
a、发布分支:在代码发展到一定阶段,建立发布分支,将当前的一个版本取
出来,拷贝到 branches 目录下,进行全面严酷的测试,如发现 BUG 则在当前
版本进行修复,并同步更新 trunk 中的 BUG,经测试完成后,将文件拷贝到
tags 目录中发布,并提交给客户。
b、特性分支:如果需要作复杂的修改,会影响到 trunk 代码的稳定性,则建议
建立一个特性分支,等特性稳定之后,再和 truck 主干合并
22、标签 TAG:它是某个项目,某个时间的一个快照,这个术语很常见,每次
提交一个修订版本其实都是一个精确的快照。
23、经典常用的版本库布局:
如果是单个项目的,建议使用如下格式
/trunk保存项目开发的主线。
/branches保存项目的各种开发分支。
/tags保存项目的标签,也就是创建后永远不会修改的分支,例如发布
release 版本。
如果是多个项目在同一个版本库中,建议使用如下格式
/RigTMS/trunk
/RigTMS/branches
/RigTMS/tags
/DocProtect/trunk
/DocProtect/branches
/DocProtect/tags