如何撤消SVN上的更新

时间:2011-06-07 17:17:40

标签: iphone xcode ios svn xcode4

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

2 个答案:

答案 0 :(得分:1)

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

对于受错误更新影响的所有类文件执行以下步骤,您应该好好去!

此外,您可能应该通知您的同事不要将错误的代码作为最佳做法检查:)

这是你应该看到的:

enter image description here

编辑:

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

所以我已经确定更新到特定修订版的功能已从Xcode4中删除(如果我错了,我可以接受更正)。

然而,有一种解决方法(虽然这会导致您正在使用的文件在其旁边修改“M”标志,而不是“U”标志,这意味着您正在处理之前的文件修改)。

在XCode4中,在顶部的工具栏上,选择查看>>编辑>>版本。

enter image description here

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

在每个编辑器窗口的底部是一个工具栏,其中列出了您正在查看的特定修订版。

enter image description here

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

enter image description here

一旦你这样做,我担心你只需将该代码复制粘贴到本地类文件中。

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

我有两个其他解决方案:

1(不推荐)

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

2(取决于您要查找的功能级别)

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

答案 1 :(得分:0)

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

轻微的offtopic:厌倦了类似的问题,我的团队决定转向Mercurial并且甚至没有后悔。