【问题标题】:How to I replace all code in trunk with my old code?如何用旧代码替换中继中的所有代码?
【发布时间】:2012-11-27 15:14:19
【问题描述】:

我和一个合作伙伴正在为一个班级的合作伙伴项目使用 svn,我们最初在我们的主干代码中走错了方向。我们到了第 129 版,然后才意识到最好从第 113 版重新开始,然后朝着不同的方向前进。

在我自己的计算机上,我检查了修订版 113,进行了更改,并希望提交我拥有的代码。但是,当我尝试提交时,我得到了这个:

svn: Commit failed (details follow):
svn: File or directory 'Robot.cpp' is out of date; try updating
svn: resource out of date; try updating

问题是,我不想更新。我不希望我们从修订版 113 到 129 所做的所有更改,并且基本上希望将存储库中的所有代码替换为我在本地拥有的代码。我该怎么做?

【问题讨论】:

  • 如果你能安装一个像 TortoiseSVN 这样的 GUI,你可能会发现拖放功能摆脱了找出正确命令行的奥秘。
  • 古怪的替代方案:删除较新的修订文件并编辑“当前”文件。我想你可以在网上找到这方面的教程。它不受支持。

标签: svn merge


【解决方案1】:

作为工作副本的根目录,您可以发出以下命令:

svn merge -rHEAD:113 .

这将“撤消”您对修订版 113 所做的所有更改,以便您的修订版 130 看起来像修订版 113。

不要忘记事后提交。

【讨论】:

    【解决方案2】:
    • 标记当前主干,以便备份
    • 将当前副本签出到新文件夹中
    • 回滚到版本 113 的所有更改:svn merge -c 113,然后是 svn commit -m "rolledback to 113"
    • 在您当前的工作目录中:svn update
    • 然后svn commit

    【讨论】:

      【解决方案3】:

      您可以标记129版本,并将129版本下载到您本地。使用您的新本地版本创建一个新分支。这样,你就可以保留你所拥有的一切。在一个分支上,您可以修复版本 129 上的问题,在另一个分支上,您可以创建新功能。您还可以将更改从一个分支合并到另一个分支。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-06
        • 2017-12-09
        • 1970-01-01
        • 2017-02-28
        • 2012-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多