svn解决冲突

之前一直在用git,现在工作需要svn,就学习了一下svn解决冲突的方法

对于刚接触svn的人来说,svn冲突后,不能提交是件让人很郁闷的事情。最让人郁闷的事,是代码间的覆盖。你把我代码盖了,我会很火大的。谁把谁的盖了都不爽。

为什么会出现代码冲突问题呢,因为不同的人,同时修改了同一个文件的同一个地方,这个时候,他提交了,你没有提交,你就提交不了,这个时候,你要先更新,更新就会出现代码冲突问题。一般情况,要尽量避免多个人修改同一个文件,如果你改的文件是公用文件,这个时候,最好和大家勾通一下,大家都在改就不好了。

下面我说一个,通用的解决冲突的办法,还不会覆盖代码,以test.php为例 :

1,修改文件后提交不了,大多是因为版本不一致造成的。更新一下,不产生冲突的情况,就可以提交了。

2,更新文件,如果出现冲突的情况,打开冲突文件test.php会看到类似以下的内容

<<<<<<<<<<<<<<<

asdfadfadfadf

11111111111111

=======

asdfadfadfadf

111111111111111

222222222222

>>>>>>>>>>>>>>>>

结合别人修改的内容和自己修改的内容,然后把文件中的<<<<<,=====,>>>>>>>这类冲突符号去掉。去掉后,还是不能提交的,为什么?因为冲突时会产生三个文件,有这三个文件存在肯定提交不了。

客户端用的tortoisesvn(这个估计程序员用的最多),冲突时会多产生,三个文件

test.php.mine   是冲突前自己的文件

test.php.版本号   是冲突前本地的版本文件

test.php.服务器的版本号   是冲突后服务器版本文件

提交的时候,把这三个文件删除掉就可以提交了。

3,产生覆盖的原因。

a),在修改冲突文件test.php时,把别人代码都删除掉了,只留下了自己的代码。这样就会产生覆盖了。

b),把test.php.mine中的内容直接copy到test.php文件,这样也会产生代码覆盖。

上面二种情况都是我亲眼看到新手这样操作的,要避免这二种操作方法。


在使用Eclipse SVN插件进行团队开发的过程,假设开发人员A和B都获取了同一个文件的最新版本(假如版本号为8),并都对其进行了改动,成员A已经提交了自己所作的改动(版本号变为9),如果此时成员B想要提交自己的改动,就极有可能与成员B已经提交的改动产生冲突。

如下图所示,在Eclipse SVN同步视图中的Test.java就是一个产生了版本冲突的文件,那么我们该如何解决SVN的文件冲突呢?

1、解决简单的文件版本冲突

对于产生版本冲突的文件,如果两个人改动的不是同一处位置,例如成员A只改动了文件头部,成员B只改动了文件的尾部,那么无需过多担心,因为现在的SVN已经非常智能,只要两者的改动互不影响,SVN可以智能地将其合并,最后的结果就是文件头部是A改动的结果,尾部是B改动的结果,中间保持不变。

这种情况下,我们可以直接右键该文件,先在关联菜单中点击【更新】(Update),将服务器上的改动更新到本地,然后再点击【提交】即可。

2、解决二选一形式的文件版本冲突

经过文件对比后,如果我们发现两者改动的是同一个位置或者是同一个功能点,那么我们可能需要选择性地保留一个,舍弃另一个。

如果舍弃的是本地文件,请右键单击该文件,然后在关联菜单中点击【覆盖/更新】(英文:Replace/Update),此时Eclipse将提示"是否删除本地更改,并替换为资源库中的文件",直接点击【Yes】即可舍弃本地更改,并更新为资源库中的最新版本。

如果舍弃的是资源库中的文件,请右键单击该文件,然后在关联菜单中点击【标记为合并】,然后再点击【提交】即可。

3、解决复杂的文件版本冲突

如果本地和资源库中的文件改动都"各有所需"又"各有所弃",那么我们只能在文件对比中,一处处对比不同之处,并逐步修改为最终版本。

在修改与合并的过程中,有两个图标按钮比较重要。如下图所示的红色边框标注的两个图标,前者可以将右侧与本地文件没有产生冲突的改动复制到左侧的本地文件中(比如,只有main()方法有冲突,右侧的sayHi()方法没有冲突,右侧的sayHi()方法部分就会复制到左侧文件相匹配的位置),后者用于将鼠标光标当前所在的右侧改动区域复制到左侧相应位置。

在确认改动完成之后,同样的点击右键关联菜单中的【标记为合并】,然后直接【提交】即可。


以上两篇文章出自http://www.softown.cn/post/102.html

http://blog.51yip.com/server/1071.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容