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
注释**个人比较倾向于使用第一种方式,一个是格式比较简单,终端用户不容易引起混淆,二是版本库的权限控制比较简单,三是以后的备份/还原相对易行
24、SVN的数据存储格式有Berkeley DB和FSFS。我们现在所使用的版本默认为FSFS格式的数据存储。
25、SVN自带工具
(要使用这些工具可以在命令行模式下输入svnadmin help、svnlook help等指令即可)
Svnadmin:提供创建SVN版本库的功能,还可以用来维护这些版本库。
Svnlook:用来查看版本库中不同的修订版本和事物(它不会改变版本的内容)。
Svndumpfilter:可以简单快速的作为SVN版本库历史的以路经为基础的过滤器。
Svnsync:将一个版本库的历史转移到另外一个上。特点是可以远程操作(“源”、“目标”版本库以及svnsysnc程序可以在不同的计算机上使用。)
26、SVN节约磁盘空间的主要方法:
1、采用增量化技术,对两组数据,只记录其中的一组,另外一组只是存放与第一组有差别的部分。
2、由于客户端和服务器网络异常,或客户端svn进程异常中止,都可能导致文件提交的事务失败,可以删除意外中止的事务。可以使用$svnadmin lstxns myrepos来清除。
27、删除不使用的Berkeley DB日志文件
Svnadmin list –unused –dblogs /path/to/repos
Rm ‘svnadmin list –unused-dblogs /path/to/repos’