【问题标题】:Subversion resolve all conflicts quicklySubversion 快速解决所有冲突
【发布时间】:2010-11-09 17:33:15
【问题描述】:

当我有几个冲突时,有没有办法通过告诉 SVN 保留存储库中的版本来解决它们?不幸的是,我们仍在使用 1.4。

【问题讨论】:

  • 您为什么要这样做?假设您进行了 200 行更改,并且有人在您之前签入了一个文件,该文件只是添加了一些 cmets,从而导致了冲突。您是否打算为此放弃 200 行更改?
  • 这是一种情况,我知道某些工作副本中的所有更改都是垃圾,并且想要使用 repos 的版本。

标签: svn conflict resolve


【解决方案1】:

svn update . --accept theirs-full

还是 svn 1.4 中没有?

您可以尝试在 1.4 服务器上运行 1.5 客户端,可能会奏效。

【讨论】:

  • 我用 1.4 的服务器运行了一个 1.5 的客户端。在大多数情况下,它工作得很好,但你失去了自动合并跟踪,一方面。请参阅 1.5 发行说明 (subversion.tigris.org/svn_1.5_releasenotes.html) 中的“兼容性问题”。
【解决方案2】:

你可以试试

svn st | awk '/^C/ { print $2 }' | xargs svn revert

这会还原所有有冲突的文件

【讨论】:

    【解决方案3】:

    我相信如果您运行命令svn revert . -R,您基本上会撤消对工作副本的所有更改。如果有冲突的文件,SVN 会丢弃您的更改并使用您最近更新到的版本。

    当然,这也消除了对不冲突文件的更改。

    【讨论】:

    • SVN 抛弃您的更改并使用您最初签出的版本;您仍然需要进行 svn 更新以从存储库中获取当前的 HEAD 版本。
    • @Roger:但如果你有冲突的文件,那么你已经运行了 svn up。它是 svn up 从 svn 恢复到的存储库中提取的版本(除非这发生了变化,我用 1.6.3 对其进行了测试)。
    • 相应地澄清了我的答案:)
    • 好主意。我会让它打开一段时间,看看是否有更优雅的解决方案。
    • 这不会删除处于冲突状态的文件夹。但是回答stackoverflow.com/a/1109832/528020确实
    猜你喜欢
    • 2019-06-05
    • 2016-01-24
    • 1970-01-01
    • 2016-09-24
    • 2011-01-01
    • 1970-01-01
    • 2021-12-27
    • 2012-10-24
    • 1970-01-01
    相关资源
    最近更新 更多