如何解决“本地编辑,更新时传入删除”消息
当我做一个svn status .
,我得到这个:
! C auto-complete-config.elc > local edit, incoming delete upon update ! + C auto-complete.elc > local edit, incoming delete upon update ! + C popup.elc > local edit, incoming delete upon update ! + C fuzzy.elc > local edit, incoming delete upon update
基本上,这些文件不应该在存储库中。 开发人员已将其删除。 然后,我想我做了一个svn rm ...
错误之后(应该做svn update .
)。
所以,现在,当我做svn status .
,我得到这些树冲突的消息。
我在这里find了文档,但不知道如何根据文档“合并”它。
如何摆脱他们?
我认为我的工作副本与存储库同步。 不知道为什么这些消息显示。 这些文件应该被删除,并被删除,据我所知无处不在。 我试过svn update .
和svn revert .
但是当我做svn status .
时,我仍然会收到这个消息svn status .
。
简洁版本:
$ svn st ! + C foo > local edit, incoming delete upon update ! + C bar > local edit, incoming delete upon update $ touch foo bar $ svn revert foo bar $ rm foo bar
如果冲突是关于目录而不是文件,则用rm -r
replacemkdir
和rm
。
注意:同样的程序也适用于以下情况:
$ svn st ! C foo > local delete, incoming delete upon update ! C bar > local delete, incoming delete upon update
长版本:
当你编辑一个文件,而其他人删除该文件并首先提交时,会发生这种情况。 作为一个好的svn公民,你在提交之前做一个更新。 现在你有一个冲突。 意识到删除文件是正确的做法是从工作副本中删除文件。 现在不是内容svn现在抱怨说本地文件丢失,并有一个冲突的更新,最终希望看到文件删除。 干得好svn。
如果svn resolve
不了,无论出于何种原因,你可以这样做:
初始状态:本地文件丢失,更新冲突。
$ svn st ! + C foo > local edit, incoming delete upon update ! + C bar > local edit, incoming delete upon update
重新创build冲突的文件:
$ touch foo bar
如果冲突是关于目录,则用mkdir
replacetouch
。
新的情况:本地文件被添加到存储库(是的,svn,无论你说什么),更新仍然冲突。
$ svn st A + C foo > local edit, incoming delete upon update A + C bar > local edit, incoming delete upon update
将文件恢复到svn喜欢的状态(即删除):
$ svn revert foo bar
新情况:svn不知道本地文件,更新不再冲突。
$ svn st ? foo ? bar
现在我们可以删除这些文件了:
$ rm foo bar
如果冲突是关于目录,则用rm -r
replacerm
。
svn不再抱怨:
$ svn st
完成。
尝试使用解决冲突
svn resolve --accept=working PATH
我刚刚得到同样的问题,我发现
$ svn revert foo bar
解决了这个问题。
svn的解决scheme并没有为我工作:
$ svn st ! + C foo > local edit, incoming delete upon update ! + C bar > local edit, incoming delete upon update $ svn resolve --accept working svn: Try 'svn help' for more info svn: Not enough arguments provided $ svn resolve --accept working . $ svn st ! + C foo > local edit, incoming delete upon update ! + C bar > local edit, incoming delete upon update $ svn resolve --accept working foo Resolved conflicted state of 'foo' $ svn st ! + foo ! + C bar > local edit, incoming delete upon update
如果您在冲突的目录中没有做任何更改,也可以使用rm -rf conflicts_in_here/
然后svn up
。 这至less对我有效。
所以你可以恢复你删除的文件,但要记住,如果你正在使用一个设置的项目文件(如iOS)的任何types的项目,恢复该文件将其添加到您的系统文件夹结构,而不是您的项目文件结构。 如果您在这种情况下可能需要额外的步骤