`

svn代码冲突,不能提交的解决方法

 
阅读更多

网上看到一篇blog,发现总结得不错,共享一下

http://www.blogjava.net/sealyu/archive/2009/09/03/293717.html

 一.提交之前先更新

1.         SVN更新的原则是要随时更新,随时提交。当完成了一个小功能,能够通过编译并且自己测试之后,谨慎地提交。

2.         如果在修改的期间别人也更改了svn的对应文件,那么commit就可能会失败。如果别人和自 己更改的是同一个文件,那么update时会自动进行合并,如果修改的是同一行,那么合并时会产生冲突,这种情况就需要同之前的开发人员联系,两个人一起协商解决冲突,解决冲突之后,需要两人一起测试保证解决冲突之后,程序不会影响其他功能。

3.         在更新时注意所更新文件的列表,如果提交过程中产生了更新,则也是需要重新编译并且完成自己的一些必要测试,再进行提交。这样既能了解别人修改了哪些文件,同时也能避免SVN合并错误导致代码有错

二.保持原子性的提交

每次提交的间歇尽可能地短,以几个小时的开发工作为宜。例如在更改UI界面的时候,可以每完成一个UI界面的修改或者设计,就提交一次。在开发功能模块的时候,可以每完成一个小细节功能的测试,就提交一次,在修改bug的时候,每修改掉一个bug并且确认修改了这个bug,也就提交一次。我们提倡多提交,也就能多为代码添加上保险。

三.提交时注意不要提交本地自动生成的文件

一般配置管理员都会将项目中一些自动生成的文件或者与本地配置环境有关的文件屏蔽提交(例如eclipse中的.classpath文件等)。如果项目中没有进行这方面的配置来强行禁止提交这样的文件,请自觉不要提交这样的文件。提交了这样的文件后,别人在更新后就可能与本地的环境冲突从而影响大家的工作。

四.不要提交不能通过编译的代码

代码在提交之前,首先要确认自己能够在本地编译。如果在代码中使用了第三方类库,要考虑到项目组成员中有些成员可能没有安装相应的第三方类库。项目经理在准备项目工作区域的时候,需要考虑到这样的情况,确保开发小组成员在签出代码之后能够在统一的环境中进行编译。

五.不要提交自己不明白的代码

代码在提交入SVN之后,你的代码将被项目成员所分享。如果提交了你不明白的代码,你看不懂,别人也看不懂,如果在以后出现了问题将会成为项目质量的隐患。因此在引入任何第三方代码之前,确保你对这个代码有一个很清晰的了解。

六.提前协调好项目组成员的工作计划

项目经理应该合理分配工作计划。每个成员在准备开始进行某项功能的修改之前,如果有可能,先跟工作小组的成员谈谈自己的修改计划,让大家都能了解你的思想,了解你即将对软件作出的修改,这样能尽可能的减少在开发过程中可能出现的冲突,提高开发效率。同时你也能够在和成员的交流中发现自己之前设计的不足,完善你的设计。

七.对提交的信息采用明晰的标注

在一个项目组中使用SVN,如果提交空的标注或者不确切的标注将会让项目组中其他的成员感到很无奈,项目经理无法很清晰的掌握工作进度,无法清晰的把握此次提交的概要信息。在发现错误后也无法准确的定位引起错误的文件。所以,在提交工作时,要填写明晰的标注,能够概要的描述所提交文件的信息,让项目组其他成员在看到标注后不用详细看代码就能了解你所做的修改。

八.慎用锁定功能

在项目中要慎用锁定的功能,在你锁定了一个文件之后别人就无法继续修改提交该文件,虽然可以减少冲突的发生率,但是可能会影响项目组中其他人员的工作。平时只有在编辑那些无法合并的文件(例如图片文件,flash文件等)时,才适当的采用锁定操作。

分享到:
评论

相关推荐

    SVN版本冲突解决详解

    SVN版本冲突解决详解

    Ankhsvn 安装及使用

    同时AnkhSvn解决了我们无法查看对该解决方案所做更改(即view history)的问题,保证了代码提交的安全性,同时使我们每个人从担心代码冲突、代码覆盖的疑虑中解放出来,能够全身心投入项目开发中。

    个人总结的svn常见操作

    总结了常见的几个svn操作、合并等svn添加忽略提交的列表方法 svn代码冲突的解决方法 恢复"删除或覆盖"的代码 恢复"删除或覆盖"的文件 合并分支的内容到主干 从主干上合并内容到分支

    SVN使用规范

    2、提交代码时,如果出现冲突,必须仔细分析解决,不可以强行提交 3、提交代码之前先在本地进行测试,确保项目能编译通过,且能够正常运行,不可盲目提交 4、必须保证SVN上的版本是正确的,项目有错误时,不要进行...

    SVN和GIT视频教程2019(百度云).txt

    01_创建虚拟机、02_为什么要使用版本控制、03_单用户的SVN代码管理、04_仓库的备份和还原、05_多用户共同管理代码的冲突、06_使用版本控制问题都可以得到解决、07_文件锁、08_SVN提交代码规范、09_SVN图标、10_添加...

    SVN 1.6 64位

    集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上是不可以工作。下面举例说明...

    Svn与Visual Studio的整合使用

    源代码版本管理简介 版本管理工具简介 版本管理的概念 SVN 的安装 安装文件简介 ...SVN 的配置 ...冲突的解决 SVN 的冲突管理 冲突产生的情况 分支的处理 分支的创建 分支的切换 分支的合并

    MyEclipse中SVN的常见的使用方法

    一 、导入项目 (Checkout...从svn资源库检出 二 、更新 (Update) 三、锁(对要修改的文件加锁,防止文件冲突) 四、提交(项目修改后的提交) 五、解锁 六、查看历史修改 七、文件还原 八、 文件覆盖 九、 文件冲突

    超级详细的SVN的安装使用方法

    1.SVN的下载路径2.SVN的安装3.SVN的基础配置和使用方法4.SVN解决代码提交冲突问题4.SVN的账号创建及使用

    SVN和idea整合(笔记)

    SVN与idea的配置,idea项目提交到SVN,SVN项目检出到idea,版本冲突问题

    AnkhSVN2019.vsix

    AnkhSVN2019 非常简单好用的SVN管理工具,Visual studio 底部清楚展示迁出代码,冲突代码,实现选中若干项提交或者撤回,而且代码文件的√比VisualSVN圆点更好看,已经习惯了它。

    AnkhSvn操作手册

    9 2.4.4 什么是冲突合并视图 10 3 开始使用 AnkhSvn10 3.1 安装 AnkhSVN 10 3.2 在 VisualStudio 中启用 AnkhSvn 10 3.3 将项目连接到 AnkhSVN 11 3.4 增加解决方案到版本库 12 3.5 浏览版本库13 3.6 增加工作拷贝到...

    SVN使用手册中文版快速入门

    解决冲突(合并别人的修改) 手工合并冲突 拷贝覆盖你的工作文件 下注:使用svn revert 提交你得修改 检验历史 svn log svn diff 比较本地修改 比较工作拷贝和版本库 比较版本库与版本库 svn cat svn list 关于历史...

    SVN使用手册中文版.chm

    解决冲突(合并别人的修改) 手工合并冲突 拷贝覆盖你的工作文件 下注:使用svn revert 提交你得修改 检验历史 svn log svn diff 比较本地修改 比较工作拷贝和版本库 比较版本库与版本库 svn cat svn list 关于历史...

    AnkhSVN 2.411675.4611

    同时AnkhSvn解决了我们无法查看对该解决方案所做更改(即view history)的问题,保证了代码提交的安全性,同时使我们每个人从担心代码冲突、代码覆盖的疑虑中解放出来,能够全身心投入项目开发中。

    SVN(64位、32位)

    同时,多人开发时,可以将项目从仓库中下载到本地,自己开发自己的模块并提交,就算有冲突或覆盖,也能及时发现并回退到之前的版本。只要你在每次修改和提交代码之前将代码更新到最新的版本,一般是不会发生覆盖别人...

    AnkhSvn-2.6.12730

    使用它我们可以做到随时随地的进行项目开发,摆脱了开发过程中空间的限制(当然,随时随地的条件是可以上网),同时解决了团队合作中的一个令人头疼的问题--修改冲突。以前我们用SourceSafe进行项目控制时,经常发生...

    AnkhSVN是一款在VS中管理Subversion的插件 兼容VS2012

    同时AnkhSvn解决了我们无法查看对该解决方案所做更改(即view history)的问题,保证了代码提交的安全性,同时使我们每个人从担心代码冲突、代码覆盖的疑虑中解放出来,能够全身心投入项目开发中。

    版本控制 Tortoise SVN

    集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面...

Global site tag (gtag.js) - Google Analytics