如何找到以前删除但仍存储在源代码管理中的有用代码?

sha*_*oth 8 svn version-control

每当有人询问如何处理不再需要的代码时,答案通常是"删除它,如果需要它,请从源代码控制中恢复".

现在如何在存储库中找到这段源代码?让我们将范围限制为SVN以简化 - 我怀疑使用任何其他源控制系统在这方面不会有太大的区别(如果我错了,请纠正我).

如果我删除该代码并提交更改,它将不再是最新版本.如何在不导出每个修订版并彻底搜索的情况下找到它(这几乎是不可能的)?

ame*_*vin 5

您需要使用差异工具,大多数svn存储库都有它们.右键单击要回滚的文件并选择"差异"或"差异"或类似(花费在实现上),然后它会要求将当前版本与早期版本进行比较 - 如果您知道早期版本的大致日期然后选择那个版本(日期/时间戳通常很明显),你会看到两个版本并排.然后,您可以选择不同的位(通常为红色),右键单击它们并选择集成它们.

您用于SVN的客户端工具将确定详细信息.


top*_*kip 3

最正确的答案是:你不能。有一些方法可以帮助您完成该任务,但不可能自动完成,因为:

  • 你不知道它在哪个文件中
  • 你不知道源代码或其中的一部分
  • 您不记得代码删除是什么时候发生的。
  • ...

计算机无法读懂我们的想法。也就是说,当然还有其他工具可以帮助您,例如前面提到的工具,或者像trac这样的图形前端(我非常喜欢它用于此目的)。