SVN是Subversion的简称,是一个开放源代码的版本控制系统,在它的管理下,文件和目录可以超越时空的限制,权且当作一种神奇的“时间机器”吧。
基本功能
版本控制
作为一个版本控制系统,SVN能够及时的更新版本,将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。
备份
SVN会对你的每一次操作和更改进行备份(为了节省占用空间,多采用增量备份)。更改错误、误删、不满意、修bug、建分支,这些都没关系。有了SVN,妈妈再也不用担心我改代码了,so easy !
工作流程
要点
对SVN整体的了解和把控;
文件的检出(Checkout)、添加(Add)、提交(Commit)、更新(Update);
版本库的合并、分离、转移;点这里
冲突
在使用SVN提交文档时,不免遇到冲突而无法提交。
产生原因:
多位团队成员操作同一文件,此时版本号为1,A小伙工作利索,干劲十足,很快操作完成,提交后服务器上版本变化为2;B小伙干的慢,随后也完成了,开始提交,此时冲突出现。因为B要提交的文件此时在服务器上已经变更为版本2,内容也有所更改。
解决冲突:
1.resolve(编辑冲突)
2.revert(选择SVN还原,放弃自己所做的修改)
3.成员协商交流
如何避免:
1.对文件修改编辑前,先更新(update);
2.对文件编辑后,及时提交(commit),勤提交;
3.多沟通。
关于更新和提交
在看社河师哥录制的视频时,发现师哥总是先提交一下,然后紧接着就更新;看《SVN源代码管理规范 2.0》时,上面强调要先更新,再提交。相互矛盾,自己感觉先更新和先提交都能达到目的。查阅资料以后理解了,其实对于紧锣密鼓的开发工作时,先后没有什么大影响,这个问题就变成了先有鸡还是先有蛋的问题。
但是,对于日常开发,先更新再提交应该是一个好习惯。更新之后才能保证目前自己的文件是最新版的,此时开始编辑,可以有效的减少冲突,这正照应了上面提到的如何避免冲突。
优点
1.记录细节
2.成果复用
2.协同工作
3.便于管理
4.备份及时
对SVN画张图
小结
关于SVN的内容不止我介绍的这么一丢丢,还有待在后续的合作发开中不断实践发现。软件开发工具随着时代发展在不断的更新迭代中,SVN来源于CVS,却将要替代CVS,可见人们对工具的使用总是很挑剔,对先进工具的不断学习必将提高我们的工作效率,所以对学习这件事来说,我们未完待续……