撤销使用他们的版本并标记为已解决 - SVN

7
< p > < em > 假设 - 不是我这样做的 - 让我们说我认识的某个人更新了他们的工作文件副本,看到了冲突,匆忙地点击了“使用它们”,然后迅速标记为已解决...

有没有办法撤销这个操作并恢复那几百行代码呢?我是说某个人丢失的代码...

5个回答

29

也许这能帮助有类似问题的其他人:我们遇到了这种情况,发现已删除的文件在回收站里。我们实际上找到了.mine和.theirs文件,并成功地恢复了更改。


4
我有类似的情况。我进入了包含已解决文件的目录,按下 Ctrl+Z,然后 .mine 和 .theirs 神奇地从回收站中重新出现了! - yagni
1
@Jefrey Solis - 你在天堂有一个特别的地方,你刚刚为我节省了三天的工作!非常感谢! - Wazime

4
如果您使用 Eclipse 编写代码,右键单击文件,进入 Compare with 并勾选 Local history。然后您应该会看到一个带有时间戳的本地文件副本列表。如果您双击其中任何一个,它将以比较模式打开,您可以查看它(并复制遗失的工作内容)。
类似的 IDE 可能会或可能不会具有某种本地版本控制/备份功能。

1
不是Eclipse,而是另一个带有本地历史记录的IDE。谢谢。 - Haozhun

4

你几乎丢失了数据,但回收站里还有副本。如果你没有清空回收站,你可以从那里恢复。面对同样的问题,但在回收站中找到它。


2

如果这个变化只是在你合并的本地工作副本中进行了更改并提交了,那就为时已晚了,因为“使用theirs”的意思是说我会选择theirs并将我的更改覆盖掉。 如果这些更改是在将分支合并到主干期间完成的,那么这些更改仍然存在于分支上。那么你可以重新获取它们。


1

不,你搞错了。

当你的朋友看到冲突时,在磁盘上会有两个文件,其中包含了两个版本的更改。当你点击“使用他们的”时,你将用其中一个文件的版本覆盖你的工作副本文件。但是,当你点击“已解决”时,你删除了临时版本文件。

所以,如果你很幸运,他们可能可以通过一些恢复软件来恢复,然后你可以用这些更改拆分你的工作副本(尝试还原上一个版本,然后将该文件作为补丁应用)。


好的。虽然这是一个.aspx页面,但“我的朋友”缺失的代码是客户端JavaScript。因此,使用Nirsoft的Chrome缓存查看器(http://www.nirsoft.net/utils/chrome_cache_view.html),我能够浏览缓存并找到大部分缺失的代码。不过,我真的应该教育“我的朋友”不要草率行事。 - personaelit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接