当我做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…事后误操作(应该做SVN更新的。相反)。

现在,当我执行svn status .时,我得到这些树冲突消息。

我在这里找到了文档,但不确定如何根据文档“合并”它。

如何摆脱它们?

我认为我的工作副本与存储库是同步的。不知道为什么这些信息显示。据我所知,这些文件应该被删除。我尝试了svn update。和SVN还原。但我仍然得到这条消息时,我做svn状态..


当前回答

您可以强制将本地目录恢复到svn。

 svn revert -R your_local_path

其他回答

当我们尝试合并来自错误目录的另一个分支更改时,经常会发生此问题。

Ex:

Branch2\Branch1_SubDir$ svn merge -rStart:End Branch1
         ^^^^^^^^^^^^
   Merging at wrong location

在执行时抛出的冲突是:

Tree conflict on 'Branch1_SubDir'
   > local missing or deleted or moved away, incoming dir edit upon merge

当你选择q退出分辨率时,你得到的状态为:

 M      .
!     C Branch1_SubDir
      >   local missing or deleted or moved away, incoming dir edit upon merge
!     C Branch1_AnotherSubDir
      >   local missing or deleted or moved away, incoming dir edit upon merge

这显然意味着合并包含与Branch1_SubDir和Branch1_AnotherSubDir相关的更改,并且这些文件夹不能在Branch1_SubDir中找到(显然目录不能在自身内部)。

首先如何避免这个问题:

Branch2$ svn merge -rStart:End Branch1
 ^^^^
Merging at root location

对我来说最简单的解决方法就是:

svn revert -R .

我也有同样的问题,我发现

$ svn revert foo bar

解决了问题。

SVN resolve对我不起作用:

$ 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

因此,您可以恢复您删除的文件,但请记住,如果您正在使用任何类型的项目,并设置项目文件(如iOS),恢复文件将添加到您的系统文件夹结构,而不是您的项目文件结构。如果您是这种情况,可能需要额外的步骤

您可以强制将本地目录恢复到svn。

 svn revert -R your_local_path

试着用武力解决冲突

svn resolve --accept=working PATH