【问题标题】:How to undo an Update on SVN如何撤消 SVN 上的更新
【发布时间】:2011-09-10 06:38:10
【问题描述】:

我在 Xcode 中使用 SVN。在我的工作副本中实现了某些功能后,我准备将我的代码提交到存储库。但是,自从我上次结帐以来,服务器副本已被修改。所以我认为最好的办法是先更新我的项目,解决冲突(如果有),然后最后提交代码。我就是这么做的。但是现在我发现我的项目中有一堆错误。这些错误主要出现在我的同事一直在处理的代码部分中。所以我很犹豫修改他的代码来解决错误。有没有办法可以撤消更新?由于我的代码在更新之前运行良好,我想继续处理它,并可能在稍后阶段合并并提交我的更改。我有办法做到这一点吗?

【问题讨论】:

    标签: iphone xcode ios svn xcode4


    【解决方案1】:

    XCode 允许您将代码更新到特定版本。我不确定如何在 XCode 4 中执行此操作,但在 XCode 3.2 中,您右键单击类文件并单击“获取信息”。在信息窗口中,转到“SCM”选项卡。在那里,您将看到该类文件的所有 SVN 修订列表。您应该在那里看到您同事的修订,并附有他的签入评论。选择该版本之前的版本(这是您在进行更新之前正在处理的版本)。 XCode 现在将允许您更新到该版本(通过信息窗口底部的更新按钮)。

    对受错误更新影响的所有类文件执行这些步骤,您应该一切顺利!

    此外,您可能应该告知您的同事不要签入错误代码作为最佳实践:)

    这是你应该看的:

    编辑:

    对于 XCode4,我做了一些研究,如果我目前发现的结果属实,我对 XCode4 中的 SCM 功能感到非常失望(参考:Where is the 'Revert' option in Xcode 4's Source Control?

    所以我已经确定更新到特定版本的功能已从 Xcode4 中移除(如果我错了,我愿意更正)。

    但是,有一种解决方法(尽管这会导致您正在处理的文件获得“M”标志以在它们旁边进行修改,而不是“U”标志,这意味着您正在处理以前的文件修订)。

    在 XCode4 中,在顶部的工具栏上,选择 View>>Editor>>Version。

    在这个编辑器中,XCode4 在两个编辑器窗口中显示您的类文件,一个带有您的本地修订版,一个带有存储库中的最新版本。

    每个编辑器窗口的底部都有一个工具栏,列出了您正在查看的特定版本。

    此工具栏是可点击的,可让您将视图切换到另一个修订版。

    一旦您这样做了,恐怕您只需将该代码复制粘贴到您的本地类文件中。

    此方法将确保您使用的是代码的工作副本。但是,这可能不是正确的方法(尽管目前,这是唯一的方法)。

    我有另外两个解决方案:

    1(不推荐)

    以某种方式使用 XCode 3.2 的副本

    2(取决于您正在寻找的功能级别)

    下载SmartSVN 的许可副本,让您可以将文件更新到特定修订版。

    【讨论】:

    • Xcode 4 中似乎没有“获取信息”选项。任何解决方法?
    • 好吧,我确定有办法让我看看。我在一台机器上有一个 Xcode4,但我的大部分实时项目都是在 3.2 中构建的,所以我继续使用它。我会去看看,因为它应该对我也有用:)
    • 我很惊讶,但我认为没有办法。查看我在答案中的编辑以获取解决方法。
    【解决方案2】:

    您需要从他的修订版中进行反向合并。看看这个帖子:http://www.svnforum.org/threads/31710-how-to-undo-merge-after-svn-update

    有点题外话:厌倦了类似的问题,我的团队决定改用 Mercurial,甚至没有后悔过一次。

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 2010-10-18
      • 2012-08-04
      • 2012-02-15
      • 2018-03-16
      • 2015-03-13
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多