天天看点

使用SVN提交工程需要注意和遵循的事项

    现在工作中几乎离不开SVN进行版本控制,但是公司来的新同事老犯些基本的错误或者用不好,今天忍不住写了这个“使用SVN的注意事项”(部分内容是针对linux工程管理的),希望对大家有所帮助。有不对或者不好的地方,恳请大虾不吝赐教

1.       linux工程中需要Makefile,但是提交工程时,除了Makefile.am外,最好不要提交任何Makefile开头的文件,因为那些是由./init.sh和./configure动态生成的,不同的./configure配置会导致生成的这些文件不一样。

一个更简洁的观点是,只要动态生成的东西都不要提交。那样SVN库更简洁,而且提交的文件都是有效的(因为都是人为创建的),不要提一堆垃圾上去,看着都烦,每次一更新,发现N个修改的感叹号标志,结果都是别人机器上自动生成的文件和自己机器上生成的文件不一样导致的,唉。

2.       每次提交前先更新,这样能在提交前发现是否和别人的冲突;

如果冲突,检查文件,进行协商修改;

注意看更新时显示的列表,有些冲突的地方,SVN会自动进行合并,也要检查这些合并的文件,避免SVN合并错误导致代码有错

3.       如果使用linux虚拟机开发工程,最好使用samba映射网络驱动器,然后在网络驱动器中建立文件夹进行checkout,并在右键菜单中的SVN设置中->外观与样式->图标叠加中,勾选“网络磁盘”,这样可以在映射的网络驱动器中使用SVN的图标,便于使用。

千万不要在本地磁盘进行checkout然后拖动到虚拟机中,这样会丧失SVN提供的自动识别修改文件并勾选提交的功能(如果没有这个功能,你就得为东改西改改得晕头转向最后不知道要提交哪些文件而烦恼了,最后导致来个“暴力提交”(我发明的词语哦):就是删除SVN服务器对应工程的所有文件,再提交自己本地的,可怕吧?!),也不能使用SVN的图标标识功能。

4.       在工程开发中,有些同事喜欢用SVN的锁定功能,我觉得其实基本没有必要用锁定的功能。我认为锁定的功能是为了懒人提供的(呵呵,调侃一哈J),因为他们不想去解决可能不断出现的冲突问题;但是你想,你锁定了别人怎么办?每次都要你解锁,到时还是有冲突!

其实在我参加的一个开发组中,大家都没用锁定,而且是20多万行的代码,7百多个文件,几乎没发现很恼火的冲突J这不关乎运气的原因,是因为都有良好的SVN使用习惯

    还有一个基本的观点:确保你的模块或者工程编译正确后再checkin,这个道理不言自明(可有些人就是要弄错L)。