【发布时间】:2010-12-11 11:27:11
【问题描述】:
我正在使用 乌龟 SVN。
我最近签入了一堆代码(一次提交)。在 3 小时的会议上,他们决定废弃我的一堆代码和那个特性。我的老板希望我使用应用程序该区域的旧代码恢复 Subversion。
我会说大约有 3-4 个文件受到影响。在我提交新功能更改的最后一次提交中,我需要将这些文件回滚到我签入它们之前的状态。
所以,我并不真正了解 Revert Back to Revision 的作用。我继续在日志中找到过去提交中这些文件的最新版本,然后右键单击日志中的这些文件并将其恢复为修订版。
现在这会用旧版本完全替换我的本地副本吗?如果我只想返回我上次签入的功能的子集,我这样做是否正确?
那么,一旦我恢复到该文件的本地版本,我是否会丢失所有更改?看起来它将旧代码与我的本地代码合并了......嗯,不完全是我的预期。
(是的,我从 subversion 的文档中阅读了关于它的页面,除了他们简要介绍的技术方式之外,它的含义不是很清楚或彻底在你的工作副本中)
让我们总结一下我所做的:
- 我一次检查了一堆更改。
- 同事通过 svn update 获取更新
- 我们要开会,老板说我们正在删除该功能
- 该功能是在该修订版中提交的文件列表中的大约 3-4 个文件
- 我想将这些特定文件置于它们之前的状态...有些将恢复为修订版 x,有些则恢复为 y,等等,因为对其中一些文件的最后更改是在不同的修订号上完成的.
- 所以我从日志开始。我寻找第一个文件。让我们称之为 somefile1.aspx。我发现该文件的最新版本是在修订版 X 中签入的。所以我在该修订版的更改集中右键单击它并执行恢复到修订版
- 我注意到它似乎实际上将该修订版的代码与我的本地副本合并?我想……不知道这就是我摆姿势的原因,因为我不明白这一点。
- 我对另外 3 个文件执行相同操作...查找它们最后一次提交的时间并在特定修订版中右键单击它们,然后对它们执行恢复到修订...假设这将放置我的本地版本在那种状态下,甚至我在本地对该文件所做的更改也几乎消失了
但我对这一切有点动摇和困惑。如果我正在接近这个权利,如果我应该使用 revert back 以及它在幕后实际上在做什么。我看到它已经完成了合并但是什么?我只是想将这 4 个特定文件放回以前的状态..不是我刚刚提交的整个提交,我在这里开始提到......只是与特定代码区域相关的特定文件.. rest 可以保持提交并被其他任何人下载。强文本
【问题讨论】:
-
你能更准确地解释一下你做了什么吗?您使用的是命令行 svn 客户端(如果是,是什么命令)还是特殊的 svn gui 客户端?很难想象,你做了什么。
-
我正在使用乌龟。我仍然对此感到困惑。我认为我做得对,但不确定。我在最近的提交中右键单击了这些文件并恢复到修订版。它似乎用上一个版本中的代码在本地替换了这些文件,我之前的版本对这些文件进行了最新的更改。
-
Michael Hackner 的描述是一步一步的指导;只要跟着它,你就完成了。在我看来,您并不真正了解 SVN 的工作原理(正如迈克尔所说,SVN 中的措辞在某种程度上具有误导性)......我建议您阅读 SVN 书——整本书,而不仅仅是一节。跨度>
标签: svn tortoisesvn