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

Xah*_*Lee 293 svn

当我这样做时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
Run Code Online (Sandbox Code Playgroud)

基本上,这些文件不应该在存储库中.开发人员已将其删除.然后,我认为我svn rm ...错误地做了一件事(应该完成了svn update .).

所以现在,当我这样做时svn status .,我得到了这些树冲突消息.

我在这里找到了doc 但不确定如何根据doc"合并"它.

如何摆脱它们?

我认为我的工作副本与存储库同步.不知道为什么这些消息会显示出来.据我所知,这些文件应该删除并删除.我尝试过svn update .,svn revert .但是当我这样做时,我仍然会收到此信息svn status ..

les*_*ana 423

精简版:

$ 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
Run Code Online (Sandbox Code Playgroud)

如果冲突是有关目录,而不是文件,然后替换touchmkdir,并rmrm -r.


注意:相同的过程也适用于以下情况:

$ svn st
!     C foo
      >   local delete, incoming delete upon update
!     C bar
      >   local delete, incoming delete upon update
Run Code Online (Sandbox Code Playgroud)

长版:

当您在其他人删除文件并首先提交时编辑文件时会发生这种情况.作为一名优秀的svn公民,您可以在提交之前进行更新.现在你发生了冲突.意识到删除文件是正确的做法,您从工作副本中删除该文件.而不是内容svn现在抱怨本地文件丢失,并且存在冲突的更新,最终希望看到文件被删除.干得好svn.

如果svn resolve不行,不管什么原因,你可以做到以下几点:

初始情况:缺少本地文件,更新存在冲突.

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update
Run Code Online (Sandbox Code Playgroud)

重新创建冲突的文件:

$ touch foo bar
Run Code Online (Sandbox Code Playgroud)

如果冲突是关于目录,那么替换touchmkdir.

新情况:要添加到存储库的本地文件(是的,svn,无论你说什么),更新仍然存在冲突.

$ svn st
A  +  C foo
      >   local edit, incoming delete upon update
A  +  C bar
      >   local edit, incoming delete upon update
Run Code Online (Sandbox Code Playgroud)

将文件恢复到svn喜欢它们的状态(这意味着删除):

$ svn revert foo bar
Run Code Online (Sandbox Code Playgroud)

新情况:svn不知道本地文件,更新不再冲突.

$ svn st
?       foo
?       bar
Run Code Online (Sandbox Code Playgroud)

现在我们可以删除文件:

$ rm foo bar
Run Code Online (Sandbox Code Playgroud)

如果冲突是关于目录,那么替换rmrm -r.

svn不再抱怨:

$ svn st
Run Code Online (Sandbox Code Playgroud)

完成.

  • 当冲突用于目录时,这也适用.而不是**触摸foo bar**做**mkdir foo**和**mkdir bar**.其他一切都是一样的. (8认同)

zel*_*lus 159

尝试使用解决冲突

svn resolve --accept=working PATH
Run Code Online (Sandbox Code Playgroud)


sli*_*cki 20

我刚刚遇到同样的问题,我发现了

$ svn revert foo bar
Run Code Online (Sandbox Code Playgroud)

解决了这个问题.

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
Run Code Online (Sandbox Code Playgroud)