SVN 仍然存在冲突?

Posted

技术标签:

【中文标题】SVN 仍然存在冲突?【英文标题】:SVN remains in conflict? 【发布时间】:2010-03-09 03:35:07 【问题描述】:

如何使这个目录脱离冲突?我不在乎是否使用“他们的”或“我的”或其他什么来解决它......

PS C:\Users\Mark\Desktop\myproject> svn ci -m "gr"
svn: Commit failed (details follow):
svn: Aborting commit: 'C:\Users\Mark\Desktop\myproject\addons' remains in conflict

PS C:\Users\Mark\Desktop\myproject> svn resolve --accept working C:\Users\Mark\Desktop\myproject\addons
Resolved conflicted state of 'C:\Users\Mark\Desktop\myproject\addons'

PS C:\Users\Mark\Desktop\myproject> svn ci -m "grr"
svn: Commit failed (details follow):
svn: Commit item 'addons' has copy flag but an invalid revision

PS C:\Users\Mark\Desktop\myproject> svn update
   C addons
svn: Can't move 'addons\debug_toolbar\templates\debug_toolbar\.svn\tmp\entries' to 'addons\debug_toolbar\templates\debug
_toolbar\.svn\entries': The file or directory is corrupted and unreadable.

PS C:\Users\Mark\Desktop\myproject> svn cleanup

PS C:\Users\Mark\Desktop\myproject> svn update
Skipped 'addons'
At revision 51.
Summary of conflicts:
  Skipped paths: 1

PS C:\Users\Mark\Desktop\myproject> svn ci -m "grrr"
svn: Commit failed (details follow):
svn: Aborting commit: 'C:\Users\Mark\Desktop\myproject\addons' remains in conflict

【问题讨论】:

答案是:[svn resolved filename] 这样做而不是接受的解决方案。 @TravisSchneeberger 接受的解决方案很好???? svn resolved *filename* 无法为我解决问题。 【参考方案1】:

给出以下命令:

svn resolved <filename or directory that gives trouble>

(感谢@Jeremy Leipzig 在评论中的回答)

【讨论】:

说真的,如果你不在乎它是如何解决的(也许你还是要删除它)这是正确的答案。 这并不能解决任何问题。该错误可能会在下一次提交时再次出现。 非常感谢,它对我有用!你必须在你的 svn root repo,你可以使用这个命令!【参考方案2】:

好的,下面是解决方法:

svn remove --force filename
svn resolve --accept=working  filename
svn commit

更多详情在:http://svnbook.red-bean.com/en/1.8/svn.tour.treeconflicts.html

【讨论】:

如果您使用的是 Eclipse IDE,您还可以应用我的“非命令行”解决方案,我在下面的单独答案中对此进行了描述。 使用 svn 1.7.4,svn help resolved 声明它“已被弃用,有利于运行 'svn resolve --accept working'。”【参考方案3】:

仅对我而言 revert --depth infinity 选项已修复 svn的目录仍然存在冲突问题:

svn revert --depth infinity "<directory name>"
svn update "<directory name>"

【讨论】:

恢复整个目录的文件或文件不再存在 为了解决服务器上存在的本地删除文件的冲突,这个选项有效.. 非常感谢。 “svn revert --depth infinity 。”为我工作并恢复了已删除的文件,这些文件并没有重新出现,只是使用“svn up” 确实,效果还不错!【参考方案4】:
    svn 解析 svn 清理 svn 更新

..这三个 svn CLI 命令在这个序列中,而 cd-ed 进入正确的目录对我有用。

【讨论】:

@Elad Tabak:就我而言,我不得不对文件的父目录执行此操作,这给我带来了麻烦,这可能是您遇到的问题【参考方案5】:

如果您使用 Eclipse IDE 并在提交时偶然发现此错误,这里有一个适合您的工具内解决方案。我正在使用 Subclipse,但 Subversive 的解决方案可能类似。

您可能没有注意到的是,冲突文件上还有一个附加符号,将文件标记为“冲突”。

右键单击文件,选择“团队”和“编辑冲突...”。选择适当的动作。我之前在文本级别手动合并了文件,所以我选择了第一个选项,它将本地副本的当前状态作为“已解决的解决方案”。现在点击“确定”就可以了。

冲突的符号应该已经消失,你应该可以再次提交。

【讨论】:

另外,如果目录冲突,您可以执行“团队->显示树冲突”,然后查看所有这些冲突并将它们标记为已解决(在单独的“SVN 树冲突”窗口中) 【参考方案6】:

下面还有一个解决方案,

如果整个文件夹被删除并且SVNis抛出错误“admin file .svn is missing”,以下将用于解决冲突到工作状态。

svn resolve --accept working "file / directory name "

【讨论】:

【参考方案7】:

Tortoise SVN 使用说明

导航到您看到此错误的目录。 如果您没有任何更改,请执行以下操作

一个。右键单击并执行“还原” 湾。选择所有文件 C。然后再次更新目录

【讨论】:

【参考方案8】:

我使用以下命令来消除使用命令行的冲突

svn revert "location of conflict folder" -R
svn cleanup
svn update

用于恢复当前目录

svn revert . -R

【讨论】:

哈哈哈,不,别这样。它会做坏事。 它显然会恢复您的更改 它实际上适用于一些问题,如冲突,只能通过 cli 解决【参考方案9】:

如果您无法解决(像我一样)并且由于对资源进行了许多更改而无法删除和更新资源,并且您使用的是 eclipse subversive 而不是本机客户端,请按照以下步骤操作:

    复制整个项目目录 执行团队>在eclipse中断开连接,并选择删除svn元数据 然后选择团队>共享项目,并指向您的项目所在的同一文件夹 选择是,然后提交所有内容(您可能希望排除一些非常本地的资源,例如配置文件) 如果您在第一次提交试用之前删除或移动了一些资源,请删除那些旧资源(它们应该加倍,一个在旧位置,一个在新位置)并提交这些删除。

你已经完成了。

【讨论】:

【参考方案10】:

我想正确的解决方案是:

(1) backup your-file/your-directory
(2) svn revert your-file/your-directory
(3) svn update your-file/your-directory
(4) Merge the backup your-file/your-directory to the updated one.
(5) svn ci -m "My work here is done"

【讨论】:

【参考方案11】:

我也遇到了类似的问题,就是这样解决的

xyz@ip :~/formsProject_SVN$ svn 已解决 formsProj/templates/search

解决了“formsProj/templates/search”的冲突状态

现在更新您的项目

xyz@ip:~/formsProject_SVN$ svn 更新

更新'.':

选择:(mc)保留受影响的本地移动, (r) 标记已解决(中断移动),(p) 推迟, (q) 退出解决,(h) 帮助:r(选择“r”选项解决)

解决了“formsProj/templates/search”的冲突状态

冲突总结: 树冲突:剩余 0 个(已解决 1 个)

【讨论】:

【参考方案12】:

我在 linux 上遇到了同样的问题,但我无法用接受的答案来解决它。我能够通过使用cd 转到正确的文件夹然后执行来解决它:

svn remove --force filename  
syn resolve --accept=working filename  
svn up

就是这样。

【讨论】:

第二行是svn不是syn

以上是关于SVN 仍然存在冲突?的主要内容,如果未能解决你的问题,请参考以下文章

SVN中如何解决文件冲突

SVN中如何解决文件冲突

SVN怎么解决冲突

svn 更新代码冲突 怎么编辑冲突代码 解决

svn 命令行怎么解决冲突

svn 提交时总提示一下文件冲突