【问题标题】:Subversion commit conflict颠覆提交冲突
【发布时间】:2011-02-25 14:58:12
【问题描述】:

我使用 Subversion 主要是为了在我每天使用的两台计算机之间同步工作(并且作为备份,因为我在每台计算机上都有一个已签出的存储库副本)。我将主存储库保存在 USB 闪存驱动器上。

我最近在尝试提交当前工作副本时遇到了以下错误(现在每台计算机上的两个工作副本都是相同的):

! C career\UVaOnlineJudge\Log.doc
local delete, incoming delete upon update
! C career\UVaOnlineJudge\102\Main.class
local delete, incoming delete upon update

没有详细说明我为使存储库不同步所做的工作,我的问题更笼统。 “本地删除,更新时传入删除”是什么意思? Subversion 期望我不提供什么?

【问题讨论】:

    标签: svn repository commit conflict


    【解决方案1】:

    如果不使用您的详细信息(您没有提供)关于您在这种情况下所做的事情,听起来您做了类似的事情:

    1. 删除计算机 A 上的“Log.doc”
    2. 删除计算机 B 上的“Log.doc”
    3. 将更改从计算机 A 提交到您的存储库
    4. 尝试更新计算机 B 上的存储库

    Subversion 正在尝试将存储库中的删除与本地删除合并,并且感觉好像不会干净地合并。你可以做的是:

    svn revert Log.doc
    svn revert 102/Main.class
    

    然后再次尝试svn update。 Subversion 将应用来自存储库的传入“删除”操作并删除那些本地文件。

    【讨论】:

    • 你完全正确。我不熟悉 Subversion 的 revert 命令,但这成功了。我还认为我了解使我的存储库处于这种状态所发生的事件顺序(显然不同步,版本控制系统无法自行同步)。很好地猜测导致这种状态的事件顺序,你是对的。感谢您的快速解决方案。
    • 通常svn resolved 是将冲突标记为已解决的方式。在这种情况下,svn revert 具有相同的效果,但在其他情况下,它将删除您的本地更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 2011-02-12
    • 1970-01-01
    相关资源
    最近更新 更多