SVN常见情景解析

简介:
从某种程度上来讲,版本控制是现代大规模团队合作软件开发的一个基石。如果没有版本控制,很难想象现在的软件开发会是一个什么样子。

现在用的较多的就是SVN了 。很多人 最开始接触SVN的时候总是希望能通过看文档帮助什么的来学习,最终会发现还是啥也不会。其实SVN这种东西还是在实践中学习的快,如果仅仅是看文档,可能根本就无法体会到SVN的精髓所在。
SVN一般有一个 SVN中心服务器,网上现在有很多SVN服务器的搭建帮助,这个不会有太多的麻烦。有了SVN服务器,我们就可以来提交代码了。
凡是使用SVN来管理的项目,一般都有一个trunk和若干branch。
当我们需要对项目进行修改的时候,首先从trunk主干代码上打出一个分支,放到branch下面。然后开发人员就可以在分支代码上面折腾了。下面列举了一些可能遇到的情形和处理方法:

1, 开发者A和B都在分支上修改了代码,此时commit之前最好先update一下,以便保证其他人commit的代码在本地正确获取到。

2, 若A和B都修改了同一个文件,则会触发Merge操作,SVN会根据代码中被修改的行来合并。但是有一个例外就是:若A和B修改的是同一行,则此时就会产生冲突,对于冲突,我们只能手动解决(手动合并)。合并完后,还必须通过SVN设置冲突已解决,否则代码会一直处于冲突状态。

3, 代码测试通过,合并到主干上,此时也可能产生冲突(同问题2)。我们仍然按照上面的方法解决即可。

4, 有的时候我们需要比较两个Revison之间的差别,这个可以使用svn的diff子命令,例如svn diff –r 1000:1001 ,比较1000和1001这两个版本的差别,其中,我们一般将较新的版本放在后面,旧版本放在前面(反过来的话也可以,不过比较结果就是以新版本为基线了)。

5, 有的时候我们需要一个不含SVN信息的“干净“代码,这时候可以使用svn export 子命令,输出一个不带版本控制信息的代码拷贝。

6, 查看SVN提交记录,可以使用svn log子命令。若要查看尚未提交但是有变更的文件,可以使用svn status。这个命令会显示当前代码库中所有有变更的文件以及尚未加入版本控制的文件。如果我们后悔了某一个修改(如误操作了),则使用revert子命令进行撤销。

7, 当我们进行了SVN相关的提交或者更新操作后,往往状态不能马上同步过来,特别是非常大的项目,有的时候等了很久也没用。这时可以使用svn cleanup来强制性进行状态清理。
 
以上是使用中经常遇到的情形。一般来说这些足够用了。当然SVN还有一些其他的功能,但一般不是很常用。这里就不一一列举。
SVN的一个强大之处在于它几乎可以用于所有的系统平台。特别是在Windows平台上,有强大的图形化工具(Tortoise SVN)可用。另外一点它能方便的同常用开发环境进行结合,Eclipse就不用说了。重点说下Visual Studio,微软官方并没有VS的SVN插件,不过幸好目前已经有人开发了,名为AnkhSVN,这个东西我正在用,应该来说还是比较强大的。









本文转自 kevx 51CTO博客,原文链接:http://blog.51cto.com/spinlock/542000,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
数据可视化
在使用SVN的过程中,通过哪些执行查看某个文件的修改信息
在使用SVN的过程中,通过哪些执行查看某个文件的修改信息
173 0
|
缓存
【SVN异常】svn更新时,出现不知道这样的主机的解决方案
svn更新时,出现不知道这样的主机的解决方案
1183 0
【SVN异常】svn更新时,出现不知道这样的主机的解决方案
|
开发工具 git
SourceTree配置BeyondCompare代码冲突解决工具
SourceTree配置BeyondCompare代码冲突解决工具
1054 0
|
4月前
|
网络安全 开发工具 git
[Git] 使用过程中的常见错误及解决方式
[Git] 使用过程中的常见错误及解决方式
41 0
|
前端开发 Java 程序员
用手画了11张图终于搞明白了Git工作流,我怀疑你用的是假 Git
用手画了11张图终于搞明白了Git工作流,我怀疑你用的是假 Git
用手画了11张图终于搞明白了Git工作流,我怀疑你用的是假 Git
|
网络协议 开发工具 git
Git命令集十四——抓取命令
Git命令集十四——抓取命令
178 0
|
关系型数据库
OSWatcher使用过程中小问题解决方法
本文介绍一下在使用OSWatcher过程当中遇到的两个问题的解决方法。如有更好的方法,敬请留言。 1:OSWatcher在配置文件里面设置了参数OSW_COMPRESSION为gzip后,OSWatcher采集的数据文件都会被压缩。
1081 0