【黑马程序员】svn conflict 冲突解决

【黑马程序员】svn conflict 冲突解决1. 同一处修改文件冲突开发人员都知道代码管理工具是开发中一个必不可少的工具,这里也不废话详细介绍了。

不管你个人喜欢git还是svn还是其他,但还有一大部分公司在使用svn做代码管理工具。

这里详细介绍下SVN提交文件时冲突问题的解决方式。

假设A、B两个用户,他们分别从svn服务器中检出了test1.txt文件,此时A、B、服务器三个地方的test1.txt的版本都是13(我测试环境的当前svn 赋予的版本号)。

A、B文件的内容如下图(左A右B):·接下来,B用户添加一句话并提交,内容如下:此时B用户和服务器的test1.txt的版本都变为14,只有A用户的test1.txt的版本还为13。

接下来A用户添加一句“aa”,然后提交由于A用户是在13版本上做的修改,而服务器已经是14版本了,所以会提交失败:接下来就是我们要解决的问题了,解决方法分为以下两种方式。

第一种方式:提交失败后直接选择revert,省去了解决冲突问题;第二种方式:提交失败后选择更新文件,这时会有冲突问题。

详细介绍如下:1.1. 解决方式一A放弃自己修改的内容,进行Revert操作,使其test1.txt成为13版本的最初内容。

然后update 使其test1.txt成为14版本,再在14版本上修改提交。

操作如下图:==》==>然后再修改提交1.2. 解决方式二因为版本过时,提交失败后。

A用户直接选择更新操作,结果如下图所见(这里声明下,不要被文件显示的图标所迷惑,这是其他软件对它做了关联导致的,没啥影响)这里详细说一下产生冲突后的这几个文件,:test1.txt.mine---这个文件是A用户在13版本中做了修改要提交的文件。

它的内容是:13版本内容+A用户的修改test1.txt.r13----这个文件是A用户最初的13版本的test1.txt。

它的内容是:13版本内容test1.txt.r14----这个文件时svn服务器中test1.txt的最新版本,这里既是B用户提交后的14版本。

它的内容是:13版本内容+B用户的修改test1.txt--------由于A用户选择了直接更新,此文件就是svn将最新版本14 与A用户的修改合并后的文件。

它的内容如下:接下来说一下如何解决。

对于源代码文件或其他的纯文本文件,我们可以将上图的A用户test1.txt 的内容整理下,使其满足条件,然后选择,这时test.txt.mine、test1.txt.r13、test1.text.r14将会消失。

用户A就可以顺利提交了。

但是,如果test1.txt是一个非纯文本文件,比如excel,这时的test1.txt将没法手动合并了,不得不放弃自己的修改。

可以在test1.txt上右键选择,消除掉test.txt.mine、test1.txt.r13、test1.text.r14这三个文件。

(点击Resolve不会更改test1.txt以及服务器端的内容,仅仅是消除了那几个文件。

)此时的test1.txt文件是可以提交的,它对应的是服务器的最新版本,即14版本(因为这是svn将服务器最新版本14和A用户修改内容合并后的结果)。

但这是svn帮我们合并的,是不合法的文件。

我们可以右键然后选择,然后test1.txt 就会变成14版本,A用户的修改没有了,A、B、服务器的test1.txt都成为了14版本。

如下图:接下来A用户就可以再进行修改提交了。

1.3. 解决总结对于纯文本文件因版本过时提交失败的情况,我们可以选择更新一下,然后打开”自己的修改和服务器最新版合并“后的文件(如上文发生冲突时的test1.txt文件),进行手动合并,处理好后选择resolve然后提交。

对于非纯文本文件因版本过时提交失败时,我们只能牺牲一下自己,选择,然后更新到服务器最新版本,再修改提交例如,如果sally修改了一个文件sandwich.txt,而harry也刚刚修改了这个文件的相同位置并提交到服务器。

那么sally在做这个文件的update操作的时候会得到三个额外的文件sandwich.txt.mine、sandwich.txt.r1、sandwich.txt.r2。

并且在提交的时候会遭到服务器的拒绝,因为这个文件的冲突问题还没有得到解决。

要解决这个冲突,可以选择:a.手工合并SVN冲突文件(检查和修改文件中的冲突标志)。

b.用一个临时文件(三个中的一个)覆盖你的工作文件。

c.运行svn revert来放弃所有的修改。

一旦解决了你的冲突,需要通过命令svn resolved让subversion知道并删除三个临时文件。

这时才可以提交。

2. 手动解决冲突2.1. 冲突背景1下面再说说手工合并SVN冲突。

开始的时候让人觉得害怕,但做一段时间之后,就觉得不那么烦人了。

看看如下文本:245) !important][url=][/url]1 Mayonnaise2 Lettuce3 Tomato4 Provolone5 <<<<<<<.mine6 Salami7 Mortadella8 Prosciutto 9=======10 Sauerkraut11rgb(245, 245, 245) !important][url=][/url] CreoleMustard一连串的大于、小于、等于号是SVN冲突标记,这些数据得全部删除才可以提交。

其中,[backcolor=rgb(245, 245, 245) !important][url=][/url]1 <<<<<<<.mine2 Salami3 Mortadella4 Prosciutto5 =======是你在冲[backcolor=rgb(245, 245, 245) !important][url=][/url] 1 Sauerkraut2 GrilledChicken3 >>>>>>>.r2 是别人在冲突区做的修改。

在SVN冲突区中,或许你需要和你的同事沟通来安排冲突区的文本内容,如果是程序代码,你需要和同事商量一下,中间的这段代码到底应该是什么样子的。

所有冲突区得到合理的解决之后,你就可以提交你的文件了。

版本冲突原因:假设A、B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns.txt文件的版本号已经变成101了。

同时B用户在版本号为100的kingtuns.txt文件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的101版本上作的修改,所以导致提交失败。

版本冲突现象:冲突发生时,subversion会在当前工作目录中保存所有的目标文件版本[上次更新版本、当前获取的版本(即别人提交的版本)、自己更新的版本、目标文件]。

假设文件名是kingtuns.txt对应的文件名分别是:1 kingtuns.txt.r1012 kingtuns.txt.r1023kingtuns.txt.mine4 kingtuns.txt。

同时在目标文件中标记来自不同用户的更改。

2.2. 冲突背景21、现在A、B两个用户都更新kingtuns.txt文件到本地。

2、文档中原始文件内容如下:3、A用户修改文件,添加内容“A用户修改内容”完成后提交到服务器4、B用户修改文件,添加内容“B用户修改内容”完成后提交到服务器B用户提交更新至服务器时提示如下:B用户将文件提交至服务器时,提示版本过期:首先应该从版本库更新版本,然后去解决冲突,冲突解决后要执行svn resolved(解决),然后在签入到版本库。

在冲突解决之后,需要使用svn resolved(解决)来告诉subversion冲突解决,这样才能提交更新。

2.3. 冲突解决解决冲突有三种选择:A、放弃自己的更新,使用svn revert(回滚),然后提交。

在这种方式下不需要使用svn resolved(解决)B、放弃自己的更新,使用别人的更新。

使用最新获取的版本覆盖目标文件,执行resolved filename并提交(选择文件—右键—解决)。

C、手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件。

然后执行resolved filename来解除冲突,最后提交。

C、手动解决步骤如下:1、在当前目录下执行“update”(更新)操作2、在冲突的文件上(选中文件--右键菜单—TortoiseSVN—Edit conflicts(解决冲突)),出现如下窗口Theirs窗口为服务器上当前最新版本Mine窗口为本地修改后的版本Merged窗口为合并后的文件内容显示3、如果要使用服务器版本,在Theirs窗口选中差异内容,右键,选择Use this text block(使用这段文本块);同理如果要使用本地版本,在协商后,在Mine窗口右键,选择Use this text block(使用这段文本块)。

4、修改完成后,保存kingtuns.txt文件内容。

5、在B用户的冲突目录下,选中文件--右键菜单—TortoiseSVN—Resolved(解决)。

会列出冲突的文件列表,如果确认已经解决,点OK。

6、冲突解决7、提交解决冲突后的文件。

如何降低冲突解决的复杂度:1、当文档编辑完成后,尽快提交,频繁的提交/更新可以降低在冲突发生的概率,以及发生时解决冲突的复杂度。

2、在提交时,写上明确的message,方便以后查找用户更新的原因,毕竟随着时间的推移,对当初更新的原因有可能会遗忘3、养成良好的使用习惯,使用SVN时每次都是先提交,后更新。

每天早上打开后,首先要从版本库获取最新版本。

每天下班前必须将已经编辑过的文档都提交到版本库。

合集下载

svn中解决代码冲突

svn中解决代码冲突

解决代码冲突如果commit时出现“You have to update your work copy first.”红色警告,说明版本库中的此文件已经被其他人修改了。

请先点“ok”按钮退出。

执行update,然后再commit。

如果修改与update得到的代码不冲突,则自动合并。

如果冲突(比如对同一行代码进行了修改),则出现”One or more files are in a conflicted state.“红色警告,并产生几个文件记录冲突。

一般情况下,我们不要直接编辑冲突文件。

而按照以下操作手工解决冲突。

在资源管理器中,选择commit时冲突的那个文件,鼠标右键菜单选择”Edit conficts”。

出现界面,分为”Theirs”、”Mine”和”Merged”3部分,表示”别人修改的内容”、”我修改的内容”和”合并后的结果”3部分。

我们是要将”别人修改的内容”和”我修改的内容”有取舍地合并起来,形成”合并后的结果”。

合并一般分为4种情况:保留”我的修改”,舍弃”别人的修改”。

鼠标右键点击Mine框的相应行,点击”Use this text block”。

舍弃”我的修改”,保留”别人的修改”。

鼠标右键点击Theirs框的相应行,点击”Use this text block”。

同时保留”我的修改”和”别人的修改”,并将”我的修改”放在前面。

鼠标右键点击Mine 框的相应行,点击”Use text block from mine before theirs”。

同时保留”我的修改”和”别人的修改”,并将”别人的修改”放在前面。

鼠标右键点击Mine框的相应行,点击”Use text block from theirs before mine”。

合并完成,Ctrl+S存盘,退出。

然后,在资源管理器中,选择冲突文件,鼠标右键菜单选择”Resolved”,标记冲突已解决。

系统会自动删除因冲突而新建的文件。

SVN冲突解决方法大全

SVN冲突解决方法大全

SVN冲突解决方法大全2010-05-27 09:33 佚名我要评论(0)字号:T | T本文和大家一起来学习SVN冲突解决和winmerge使用手册,本文介绍了几个SVN冲突解决的方法,希望大家通过本文的学习能够掌握,欢迎大家一起来学习。

AD:本节向大家介绍一下SVN冲突解决和winmerge使用手册问题,在学习SVN的过程中,难免会遇到SVN冲突问题,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。

解决版本冲突的命令。

在冲突解决之后,需要使用svnresolved来告诉subversion冲突解决,这样才能提交更新。

冲突发生时,subversion会在WorkCopy中保存所有的目标文件版本(上次更新版本、当前获取的版本,即别人提交的版本、自己更新的版本、目标文件。

假设文件名是sandwich.txt,对应的文件名分别是:sandwich.txt.r1、sandwich.txt.r2、sandwich.txt.mine、sandwich.txt)。

同时在目标文件中标记来自不同用户的更改。

解决SVN冲突的办法:-手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件。

然后执行svnresolvedfilename 来解除冲突,最后提交。

-放弃自己的更新,使用别人的更新。

使用最新获取的版本覆盖目标文件,执行svnresolvedfilename并提交。

-放弃自己的更新,使用svnrevert,然后提交。

在这种方式下不需要使用svnresolved。

对于svnresolved命令需要非常小心,必须是非常确定冲突已经解决才能使用。

否则,会导致Subversion 以为冲突解决,而使代码库不正确。

解决冲突详细文档:/1.2/svn.tour.cycle.html#svn.tour.cycle.resolve解决冲突(合并别人的修改)我们可以使用svnstatus-u来预测冲突,当你运行svnupdate一些有趣的事情发生了:$svnupdateUINSTALLGREADMECbar.cUpdatedtorevision46.U和G没必要关心,文件干净的接受了版本库的变化,文件标示为U表明本地没有修改,文件已经根据版本库更新。

svn 开发过程常见问题与处理方法

svn 开发过程常见问题与处理方法

SVN(Subversion)是一个开源的版本控制系统,被广泛用于代码管理和协作开发。

在软件开发过程中,SVN经常被用来管理代码的版本,协调多人同时开发,以及追踪代码的变更历史。

然而,由于开发过程中存在着各种复杂的情况和问题,有时候SVN的使用也会遇到一些常见的问题。

本文将从实际开发的角度出发,总结了SVN开发过程中常见的问题,并提出了一些解决方法供大家参考。

一、代码冲突在团队协作开发中,可能会出现多个开发者同时修改同一个文件的情况,导致代码冲突。

这时SVN会提示出现冲突,需要手动解决。

常见的解决方法有:1. 及时更新代码:在提交代码之前,先从SVN服务器更新最新的代码到本地,避免出现代码冲突。

2. 手动解决冲突:在出现冲突的文件中手动编辑代码,将冲突的部分修复后再重新提交。

二、意外删除文件有时候在清理代码的过程中,开发者不小心删除了某个重要的文件或目录,而没有在SVN上记录下来。

这时可以通过以下方法进行修复:1. 使用SVN恢复命令:可以使用命令行或者SVN客户端工具执行svn revert命令,将被意外删除的文件或目录还原为最新版本。

2. 查看SVN历史记录:可以通过SVN客户端工具或者命令行查看SVN服务器上对应文件的历史记录,并找回被删除的文件。

三、服务器连接问题在使用SVN时,有时会遇到无法连接服务器的问题,导致无法提交或更新代码。

这种情况下可以尝试以下解决方法:1. 检查网络连接:首先查看本地网络连接是否正常,对SVN服务器进行ping测试,确保网络连接畅通。

2. 检查SVN服务器配置:确认SVN服务器位置区域和端口是否正确,以及用户名和密码是否正确。

3. 联系系统管理员:如果以上方法无法解决问题,可以联系SVN服务器的系统管理员进行进一步排查和修复。

四、SVN性能问题随着代码量的增加和团队规模的扩大,SVN服务器可能会出现性能下降的情况。

为了提高SVN的性能,可以尝试以下方法:1. 定期清理历史记录:定期清理SVN服务器上过多的历史记录和无用的文件,可以通过SVN命令行工具执行svnadmin命令进行清理。

svn代码冲突解决方法

svn代码冲突解决方法

svn代码冲突解决方法SVN是一种版本控制系统,它能够帮助团队协作开发项目,并保持代码的完整性和一致性。

然而,在多人同时对同一文件进行修改时,可能会发生冲突。

本文将介绍一些解决冲突的方法。

1. 预防冲突在开始开发之前,团队成员可以采取一些预防措施来减少冲突的发生。

首先,及时更新本地代码库以获取最新的修改。

其次,在修改代码之前,先检查是否有其他人正在修改同一文件。

最后,尽量避免对同一行代码进行频繁的修改,以减少冲突的可能性。

2. 解决冲突当发生冲突时,需要解决冲突以保持代码的一致性。

首先,使用SVN客户端工具更新本地代码库,以获取最新的修改。

然后,通过比较本地代码和最新代码之间的差异,找出发生冲突的文件和代码行。

接下来,为了解决冲突,可以采取以下几种方法:-手动解决冲突:打开发生冲突的文件,手动修改代码以解决冲突。

可以使用文本编辑器或专门的代码编辑工具来完成这一步骤。

在手动解决冲突时,需要注意保留自己的修改,并合并其他人的修改。

-使用SVN工具解决冲突:SVN提供了一些工具来帮助解决冲突。

可以使用SVN的合并功能,通过选择需要保留的修改来解决冲突。

-协同解决冲突:可以与其他团队成员一起协同解决冲突。

通过讨论和协商,找到最佳的解决方案,并进行相应的代码调整。

3. 提交解决后的代码在解决冲突后,需要提交解决后的代码以更新代码库。

在提交之前,先再次检查代码是否正确解决了冲突,并确保没有引入新的错误。

4. 文档记录解决冲突后,为了避免将来再次发生类似的冲突,可以将解决冲突的方法和步骤记录下来,并分享给团队成员。

这样,其他人在遇到类似情况时就能够参考这些记录并快速解决冲突。

总结:解决SVN代码冲突是团队协作开发中常见的问题。

通过预防冲突、及时更新代码、避免频繁修改同一行代码等方法可以减少冲突的发生。

当发生冲突时,可以手动解决、使用SVN工具解决或与团队成员协同解决。

解决冲突后,需要提交解决后的代码,并记录解决冲突的方法和步骤,以便将来参考。

SVN更新及如何解决冲突文件

SVN更新及如何解决冲突文件

SVN更新及如何解决冲突⽂件⼀. SVN更新(SVN Update)及如何解决冲突⽂件:1. SVN update:更新本地代码与SVN服务器上最新的版本⼀致,只要在需要更新的⽂件夹上点击右键或者在⽂件下空⽩处点击右键,选择”SVN Update” (获取指定版本中的内容,点击右键执⾏SVN菜单中的“Update to reversion“),就可以了。

⼆. 冲突⽂件的解决:1. 对于每个冲突的⽂件Subversion在你的⽬录下放置了三个⽂件:如下:2. 为什么会产⽣冲突呢?为什么会产⽣冲突代码呢?原因很简单就是因为不同的⼈,同时修改了同⼀个⽂件的同⼀个地⽅,这时候,他提交了,我没有提交,我就提交不了,这个时候我们要进⾏先更新,然后在进⾏提交即可,那如果产⽣冲突,会⽣成如上3个⽂件。

3. 解决⽅案如下:1) ⾸先我们可以看下1.txt代码如下:<<<<<<< .mineaaaasdf11222333 dderderder=======b>>>>>>> .r52) 然后我去掉多余的代码,1.txt变成这样:aaaasdf11222333 dderderder3)进⾏提交,还是提交不了,如下所⽰:4)为什么?因为冲突会产⽣上⾯的三个⽂件,有上⾯3个⽂件存在肯定提交不了,这三个⽂件代码及解释如下:1. txt.mine是冲突前⾃⼰的⽂件(如:aaaasdf11222333 dderderder)1.txt.r4是冲突前本地的版本⽂件(如:aaaasdf11222333)1.txt.r5是别⼈赶在你之前提交的版本(如:b)其中:<<<<<<<<.mine .....=======之间的代码是你⾃⼰的======......>>>>>>>.r5是别⼈与你冲突的代码部分这样就不难理解为什么会产⽣冲突这种奇怪的东西了,因为你们修改的同⼀块代码,当然会产⽣冲突。

svn冲突解决

svn冲突解决

svn冲突解决本人使用SVN的时间不是很长,在使用之前也仅仅是粗浅的了解过这个软件。

从今年的8月份开始,由于一个项目使用Eclipse 3.1,跨地域的开发,为了适应不同的开发人员处于不同的地理位置,因此我们使用SVN作为团队开发的管理工具。

开始使用时,仅仅是边学边用,遇到不懂的地方再去查找资料。

今天由于有点时间,先把合并过程遇到的冲突问题详细了解一下。

可以使用svn status -u命令来查看一下某个问题是否会有冲突发生。

在使用svn update 的时候,会出现如下一些信息:$ svn updateU INSTALLG READMEC bar.cUpdated to revision 46.那么,U 开头的信息提示你,这个文件在你本地没有修改过,文件已经根据版本库的新版本更新了。

G 开头的信息提示你,这个文件在你本地已经修改过,但是和版本库中对应的版本并没有冲突的地方,svn已经合并更新了。

而C 开头的信息提示你,这个文件有点麻烦,你在本地的修改和版本库中的版本修改的地方重叠了,也就是说,你修改了某一行,你的同事也修改了同一行。

这个就需要你自己手工去解决了。

当冲突发生时,要注意到有三件事情可以帮助你解决问题。

a.Subversion会给这个文件作出c标记。

b.如果Subversion认为这个文件时可以合并的,它会一个冲突标记(特殊的横线来分开冲突的代码块)c.对每一个冲突的文件,Subversion放置三个额外的未版本化文件到你的工作拷贝。

filename.mine你更新前的文件,没有冲突标志,只是你最新更改的内容。

(如果这个文件不可以合并,.mine文件不会创建,因为它和工作文件相同。

)filename.rOLDREV这个是你做更新操作以前的BASE版本,就是你在上次更新之后未作更改的版本。

filename.rNEWREV这是Subversion从服务器刚刚收到的版本。

这个版本就是版本库的HEAD版本。

SVN-冲突解决方案

一、规范方法
1.增强内部交流,尽量不要修改他人代码中的内容
2.规范代码注释,在每段代码(函数、功能)前增加如下注释信息:
/**
*代码功能描述
*参数描述
*@author [作者]
*@version [YYYY-MM-DD]
**/
3.如需在他人不在时修改其代码,完整注释整段代码后拷贝副本进行修改,
同时在注释中的@author后追加修改人姓名,在@version后追加修改
时间
二、保证版本
不低于:TortoiseSVN 1.7.9, Build 23248
三、冲突产生
1.不产生冲突的情况:人对同一文件的修改位置不重叠。

此SVN会自动合
并更改。

2.文件冲突产生原因:当多名开发人员修改了同一个文件中相邻或相同的
行时就会发生文件冲突。

3.根本原因:开发者之间缺乏交流。

四、解决方案
1.产生冲突一方会看到一对冲突的修改集,并手工的选择保留一组修改。

2.注意的是软件不能自动的解决冲突,只有人可以理解并作出智能的选择,
一旦手工的解决了冲突(也许需要与上一修改人讨论),他就可以安全的把合并的文件保存到版本库。

关于svn冲突的解决方法

关于svn冲突的解决⽅法
1.在冲突⽂件上右键----edit conflicts-----然后⼿动修改⽂件冲突的红⾊地⽅,其他地⽅可以不⽤管。

2.修改完后保存。

将本地和svn⾥⾯的⽂件都保存好。

3.再在冲突的⽂件上⾯点击右键-----resolved,在弹出的窗⼝中点击相应⽂件并点击确定。

4.注意,这个时候并没有提交成功。

这个时候只是说你已经将两个版本的⽂件改⼀致了。

冲突的部分被你解决了,但是还没有将本地⽂件提交到svn⾥。

所以,现在再点击⽂件右键----update。

没有错误了就再在⽂件上右键-----commit。

这个后⾯的操作就不再赘述了。

5.现在才基本完成了冲突的修改并提交。

开源版本控制SVN 树冲突、目录丢失问题及解决机制探讨

SVN 树冲突和目录丢失问题(1)临下班了,一个老朋友(之后用yzw代称)在MSN 上呼我。

说他的SVN 遇到问题了:∙在执行分支合并时,一个目录发生了树冲突∙直接在硬盘上将该目录删除∙之后执行svn update 该目录不能检出∙不知道树冲突为何物,也不知道目录怎么变成了一团糟好吧,谁让他公司的SVN 是我给部署的呢?让他(yzw)执行svn status 命令,看看显示什么信息,然后我在本地建立一个模型,争取重现并解决他的问题。

在已经一团糟的目录下,执行svn 显示的信息如下:看来他遇到的树冲突,是因为在两个分支同时创建了一个同名目录somedir,然后在合并更新时出现树冲突。

重现问题的过程版本库准备1.创建svn 版本库于/tmp/svnserver2.检出版本库到目录~/tmp/svntf 下(windows用户需要知道的是:~ 代表我的主目录/home/jiangxin 是也)3.创建SVN 三个顶级目录:trunk tags branches4.创建分支branches/0.x5.在branches/0.x 分支下创建目录somedir,并增加一个文件somedir/branch.txt6.在主线trunk 下也创建一个目录somedir,并增加一个文件somedir/trunk.txt看看目前的版本情况备份当前的 .svn 目录直接拷贝 .svn 到 .svn-orignal,以便在出现意外的时候,进行参照。

“.svn*”。

(问题优点复杂化了,算了)合并分支改动,引发异常o而我的结果是:o看来,还需要作些工作才能完全重现错误。

15.这时我又备份了一下 .svn 目录,将 .svn 复制到 .svn-merge-conflict,以便后面比较实际上,通过比较 .svn 目录和之前备份的 .svn-merge-conflict 可以看出端倪:执行svn status,看到本地工作目录的冲突状态已经消失了,一切看起来正常了。

SVNConflict2_MERGE冲突的解决

使用 Copy-Modify-Merge 解決衝突 練習3-2:使用 Copy-Modify-Merge 解決衝突
一、 參考 SVN 的練習 3-1中步驟一至步驟十二,加入新的
檔案 conflict.cpp並使檔案同時出現在 svn1 和 svn2
資料夾中,其檔案內容如下:
二、 Harry進入 svn1 資料夾,並對 conflict.cpp 進行修改,將其內容改成
下圖所示,並進行儲存:
三、 使用 Harry帳號對 svn1 資料夾進行 Commit
四、 Sally進入 svn2 資料夾,並依下圖所示對 conflict.cpp 進行修改:
五、 使用Sally帳號對 svn2 資料夾進行 Update,系統提示出現衝突的情
況,並自動下載 test1 修改後的版本放置於 svn2 資料夾中,按下「OK」
六、 對 conflict.cpp按右鍵選擇「TortoiseSVN=>Edit conflicts」
七、 系統顯示Harry和Sally版本之間的差異,其中左半部是Harry的版本,
右半部是Sally的版本,有衝突的地方會以紅色標記起來。

八、 以VC++開啟 conflict.cpp進行手動合併為下圖,並將檔案儲存。

九、 對 conflict.cpp按右鍵選擇「TortoiseSVN=>Resolved」
十、 按下「OK」
十一、 使用Sally對 svn2 資料夾進行 Commit,這樣便能將合併後的結果上傳到檔案庫中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档