同步svn,xib有svn文件冲突怎么解决决

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
风中摇曳的小草,愈摧残愈坚强!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
如下:撤销增加foo这个文件
$ svn status foo
$ svn add foo
$ svn revert foo
Reverted 'foo'
$ svn status foo
注:svn revert某文件(在工作版本上修改) &与 删除某文件然后再从svn 版本库里update的操作结果是一样的。
但是使用svn revert不需要通知版本库就可以修改文件。
二、解决冲突
(1)冲突的发现
&& & & 在做groovy时通常会有显示冲突的文件使得该操作不能进行;在测试机上重启时如果无法启动,可以查看webroot下的文件状态
注:在进行一次merge或者文件比较多的groovy之后最好在trunk上利用svn st查看文件状态,以发现潜在的冲突。并不是所有的 冲突都会显示在groovy之中。
另外,在进行svn up时也可发现冲突
$ svn update
Updated to revision 46.
U和G不用关心,表示本地没有修改,文件是根据版本库进行更新的;G表示本地已经修改过,与版本库没有冲突,已经进行了合并;
C表示服务器上的改动与你本地的改动有冲突,需要手工修改
(2)冲突的标志
当冲突发生了,有三件事可以帮助你注意到这种情况和解决问题:
? svn up打印C标记,并且标记这个文件已冲突。
? 如果Subversion认为这个文件是可合并的,它会置入冲突标记—特殊的横线分开冲突的“两
面”—在文件里可视化的描述重叠的部分(Subversion使用svn:mime-type属性来决定一
个文件是否可以使用上下文的,以行为基础的合并,更多信息可以看“文件内容类型”一
? 对于每一个冲突的文件,Subversion放置三个额外的未版本化文件到你的工作拷贝:
filename.mine 你更新前的文件,没有冲突标志,只是你最新更改的内容。(如果Subversion认为这个文件不可以合
并,.mine文件不会创建,因为它和工作文件相同。)
filename.rOLDREV 这是你的做更新操作以前的BASE版本文件,就是你在上次更新之后未作更改的版本。
filename.rNEWREV 这是你的Subversion客户端从服务器刚刚收到的版本,这个文件对应版本库的HEAD版本。
这里OLDREV是你的.svn目录中的修订版本号,NEWREV是版本库中HEAD的版本号。
例:A修改了sandwich.txt,B刚刚改变了他的本地拷贝中的这个文件并且提交到服务器,Sally在提交之前更新它的工作拷贝得到了冲突:
$ svn update
C sandwich.txt
Updated to revision 2.
sandwich.txt
sandwich.txt.mine
sandwich.txt.r1
sandwich.txt.r2
在这种情况下,Subversion不会允许你提交sandwich.txt,直到你的三个临时文件被删掉。
(3)冲突的解决
&& &如果遇到冲突,可以选择三种方式解决:
&1&手动合并冲突文件(检查和修改文件中的冲突标志)
&2&用某一个临时文件覆盖你的工作文件
&3&运行svn revert&filename&来放弃所有的本地修改
如果解决了冲突,就需要通过svn resolved让svn知道会删除三个临时文件,svn不会认为这个文件在冲突状态了。
手工合并冲突文件
&&&&&&当查看了具体出冲突的文件后,可以打开该文件,找到冲突的标志。
Top piece of breadMayonnaiseLettuceTomatoProvolone&&&&&&& .mineSalamiMortadellaProsciutto=======SauerkrautGrilled Chicken&&&&&&& .r2Creole MustardBottom piece of bread小于和大于符号之间的就是冲突的地方,如果有能力在修改完文件并且删除冲突标志之后,进行svn resolved来删除三个临时文件
注:如果修改时不是很明白,可以参考冲突时的三个文件
复制某一工作文件(一般用的不是很频繁)
&&&&&& 如果只是希望取消本次的修改,你可拷贝svn为你生成的文件替换你的工作拷贝
$ svn updateC sandwich.txtUpdated to revision 2.$ ls sandwich.*sandwich.txt sandwich.txt.mine sandwich.txt.r2 sandwich.txt.r1$ cp sandwich.txt.r2 sandwich.txt(这里r2是版本库里你此次更新前的版本文件)$ svn resolved sandwich.txt(用来删除三个临时文件)
运行SVN revert撤销修改
&&&&& 如果冲突时决定放弃本次修改,那么可以用svn revert来撤销并进行重新修改。
$ svn revert sandwich.txtReverted 'sandwich.txt'$ ls sandwich.*sandwich.txt
当使用svn revert时不需要再用svn resolved来删除临时文件了,因为撤销会恢复所有的文件到修改前,除了已删除的文件。
阅读(10454)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'SVN解决冲突',
blogAbstract:'一、撤销本次修改,或者发现本次修改有问题,想撤销重头再来 \r\nsvn revert 文件名\r\n如下:撤销增加foo这个文件\r\n\r\n$ svn status foo\r\n? foo\r\n$ svn add foo\r\nA foo\r\n$ svn revert foo\r\nReverted \'foo\'\r\n$ svn status foo\r\n? foo\r\n注:svn revert某文件(在工作版本上修改) &与 删除某文件然后再从svn 版本库里update的操作结果是一样的。\r\n',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:4,
publishTime:2,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'风中摇曳的小草,愈摧残愈坚强!',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}SVN解决冲突 - SVN
SVN解决冲突
SVN解决冲突
Tom 决定为他们的项目添加README文件。因此,他创造了README文件,并添加到该TODO列表。在加入这个文件库在修订版本6。
[tom@CentOS trunk]$ cat README
/* TODO: Add contents in README file */
[tom@CentOS trunk]$ svn status
[tom@CentOS trunk]$ svn add README
[tom@CentOS trunk]$ svn commit -m &Added README file. Will update it's content in future.&
trunk/README
Transmitting file data .
Committed revision 6.
Jerry&检出最新的代码,这是修订版本6。他就立刻开始工作。经过几个小时的Tom更新README文件并提交了他的变化。修改README这个样子。
[tom@CentOS trunk]$ cat README
* Supported operations:
1) Accept input
2) Display array elements
[tom@CentOS trunk]$ svn status
[tom@CentOS trunk]$ svn commit -m &Added supported operation in README&
trunk/README
Transmitting file data .
Committed revision 7.
现在,库是修订版本7&Jerry的工作拷贝是过时了。Jerry&还更新README文件,并尝试提交他的变化。
Jerry'&的README文件看起来像这样。
[jerry@CentOS trunk]$ cat README
* File list
1) array.c Implementation of array operation.
2) README Instructions for user.
[jerry@CentOS trunk]$ svn status
[jerry@CentOS trunk]$ svn commit -m &Updated README&
trunk/README
svn: Commit failed (details follow):
svn: File or directory 'README' try updating
try updating
Step 1: 查看冲突
这是好事。Subversion的检测README文件已经改变,因为最后一次更新。因此,Jerry&更新自己的工作副本。
[jerry@CentOS trunk]$ svn up
Conflict discovered in 'README'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options:
Subversion抱怨README文件有冲突,Subversion不知道如何解决这个问题。所以Jerry&选择 df 查看冲突。
[jerry@CentOS trunk]$ svn up
Conflict discovered in 'README'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: df
--- .svn/text-base/README.svn-base Sat Aug 24 18:07:13 2013
+++ .svn/tmp/README.tmp Sat Aug 24 18:13:03 2013
@@ -1 +1,11 @@
-/* TODO: Add contents in README file */
+&&&&&&& .mine
+* File list
+1) array.c Implementation of array operation.
+2) README Instructions for user.
+* Supported operations:
+1) Accept input
+2) Display array elements
+&&&&&&& .r7
Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options:
Step 2: 延缓冲突
Jerry&选择推迟(p)选项,这样他就可以解决冲突。
Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: p
Updated to revision 7.
Summary of conflicts:
Text conflicts: 1
在文本编辑器中打开README文件后,他意识到,Subversion会包含Tom 的代码和他冲突标记代码。
[jerry@CentOS trunk]$ cat README
&&&&&&& .min
* File list
1) array.c Implementation of array operation.
2) README Instructions for user.
* Supported operations:
1) Accept input
2) Display array elements
&&&&&&& .r7
Jerry&希望&Tom&同他的变化一起修改,所以他只是删除了行包含冲突标记。
所以修改后的README文件会如下这个样子。
[jerry@CentOS trunk]$ cat README
* File list
1) array.c Implementation of array operation.
2) README Instructions for user.
* Supported operations:
1) Accept input
2) Display array elements
Jerry&解决冲突并提交,并让他重试。
[jerry@CentOS trunk]$ svn commit -m &Updated README&
svn: Commit failed (details follow):
svn: Aborting commit: '/home/jerry/project_repo/trunk/README' remains in conflict
[jerry@CentOS trunk]$ svn status
README.mine
Step 3: 解决冲突
这里是C字母表示有README文件冲突。Jerry&解决冲突,但没有告诉Subversion他解决冲突。他使用解决命令通知Subversion有关解决冲突
[jerry@CentOS trunk]$ svn resolve --accept=working README
Resolved conflicted state of 'README'
[jerry@CentOS trunk]$ svn status
[jerry@CentOS trunk]$ svn commit -m &Updated README&
trunk/README
Transmitting file data .
Committed revision 8.
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&关于Xcode的故事版在svn冲突的问题 - 简书
关于Xcode的故事版在svn冲突的问题
今天遇到一个关于故事版在svn冲突的事情,在解决之后便想记下来以便以后可以用场景是这样的:
我的Xcode版本是7.2
同事的版本是7.1
同事修改了main文件,提交了,然后我不清楚的情况下也提交了提示有冲突,这个时候我点击了resolve之后发现了main文件不能打开,提示不能打开文件,随后我右击main文件,选择open as-&source code可以直接看到main文件的头部是这样显示的
从网上找问题所在,因为svn有冲突,所以保留了两个,需要我们手动删除掉一个,我把一个删掉后发现还是不行,报错The document "Main.storyboard" could not be opened. Unrecognized file conten最后无意中发现右侧有个选项
在这里我选择了Relative to SDK这样就解决了问题,虽然最后都不是很清楚这个选择的作用..但是能够解决就不错了..不需要重新恢复到没冲突之前的main文件就很好了~}

我要回帖

更多关于 svn解决冲突 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信