Svn 如何解决;本地编辑,更新时输入删除;消息
当我执行Svn 如何解决;本地编辑,更新时输入删除;消息,svn,Svn,当我执行svn状态时。,我得到以下信息: ! 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
svn状态时。
,我得到以下信息:
! 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更新。
)
现在,当我执行svn status.时,我会收到这些树冲突消息
我找到了文档,但不确定如何根据文档“合并”它
如何摆脱它们
我认为我的工作副本与存储库同步。不知道为什么这些信息会显示出来。据我所知,这些文件应该被删除,并被删除。我尝试了
svn更新。
和svn恢复。
但当我执行svn状态时,仍然会收到此消息。
尝试使用
svn resolve --accept=working PATH
简短版本:
$ 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
如果冲突是关于目录而不是文件,则用mkdir
替换touch
,用rm-r
替换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
$ svn st
A + C foo
> local edit, incoming delete upon update
A + C bar
> local edit, incoming delete upon update
$ svn st
? foo
? bar
重新创建冲突文件:
$ touch foo bar
如果冲突是关于目录的,则用mkdir
替换touch
新情况:要添加到存储库的本地文件(没错,svn,不管你怎么说),更新仍然冲突
$ svn st
! + C foo
> local edit, incoming delete upon update
! + C bar
> local edit, incoming delete upon update
$ svn st
A + C foo
> local edit, incoming delete upon update
A + C bar
> local edit, incoming delete upon update
$ svn st
? foo
? bar
将文件恢复为svn喜欢的状态(即已删除):
新情况:svn不知道本地文件,更新不再冲突
$ svn st
! + C foo
> local edit, incoming delete upon update
! + C bar
> local edit, incoming delete upon update
$ svn st
A + C foo
> local edit, incoming delete upon update
A + C bar
> local edit, incoming delete upon update
$ svn st
? foo
? bar
现在我们可以删除这些文件:
$ rm foo bar
如果冲突是关于目录的,则将rm
替换为rm-r
svn不再抱怨:
$ svn st
完成。如果您没有在冲突目录中进行任何更改,您也可以在这里进行
rm-rf冲突\u/
,然后进行svn up
。这至少对我有效。我刚收到同样的问题,我发现
$ 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
当我们试图合并来自错误目录的其他分支更改时,经常会发生此问题 例: 执行时引发的冲突是:
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\u SubDir
和Branch1\u其他SubDir
相关的更改,并且在Branch1\u SubDir
中找不到这些文件夹(显然目录不能在其内部)
如何首先避免这个问题:
Branch2$ svn merge -rStart:End Branch1
^^^^
Merging at root location
最简单的解决方案对我有效:
svn revert -R .
谢谢这似乎是正确的解决办法。(不知道“决心”之前的选项。我将其标记为“答案”。不过,由于某种原因,我的工作副本树不起作用,可能是因为我的工作副本树已损坏或诸如此类……最后,我通过删除目录并进行更新来解决它。它最初对我不起作用,因此我在临时文件夹中签出了svn分支的另一个副本。然后,我删除了路径c原因是冲突并提交了更改。之后,我返回到原始副本并运行此命令。它与消息“Resolved conflicted state of PATH”一起工作。此消息有效,谢谢:)我的理解是,如果原始副本被删除或不在存储库中,则无所谓,因为“resolve”仅对工作副本有效。当目录发生冲突时,此操作也有效。用mkdir-foo和mkdir-bar代替触摸foo-bar。其他一切都一样。您可以使用
svn st|grep!|剪切-f 7-d''| xargs touch
作为一个用于触摸所有缺少的文件的行线记住,对于目录也会执行rm-r foo bar
(或者rmdir foo bar
在Windows上或如果您喜欢Windows)。这个答案保存了我的理智。谢谢。lesmana的回答也适用于消息“本地丢失或删除或移动,合并时传入目录编辑”谢谢,还帮助我解决了A+C路径/to/dir
和>本地目录编辑、传入目录删除或更新时移动问题