如何解决“本地编辑,更新时传入删除”消息

当我做一个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 -rreplacemkdirrm


注意:同样的程序也适用于以下情况:

 $ 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 

如果冲突是关于目录,则用mkdirreplacetouch

新的情况:本地文件被添加到存储库(是的,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 -rreplacerm

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的项目,恢复该文件将其添加到您的系统文件夹结构,而不是您的项目文件结构。 如果您在这种情况下可能需要额外的步骤