5

我有一行代码似乎已注释。基本上我想要找到的是更改代码中这一行的修订。

那么,是否可以在 TortoiseSvn 日志中看到与特定关键字相关的代码变化?

4

4 回答 4

9

您要做的是对该源文件执行Blame ,它会向您显示更改每一行代码的修订。

我不知道有任何命令能够为给定的代码行提供所有修订...您可以做的是在单个文件上显示日志,然后查看发生的每个修订随着时间的推移。

于 2009-10-29T11:22:00.643 回答
2

Mezoid 的责备听起来是正确的。顺便说一句,我想分享一个命令行 svn 用户可能会觉得有用的技术。(这是关于svn blame,但我使用“annotate”同义词或“svn ann”,因为“blame”听起来有点刺耳!)

好的,所以你有一条你感兴趣的线,它上面有一个独特的字符串“distinctiveString”。您想在第一次引入该行时阅读提交消息,但它可能已被编辑过几次。所以,你继续这样做:

# svn ann that.file | grep distinctiveString
2345     yada yada distinctiveString blah blah

查看 svn 的 TRAC Web 界面显示 r2345 只是更改了行的缩进,而不是引入该行的修订版。所以接下来你使用 -R 标志(或 -r,执行 svn help ann 以确保)来指定比你在上一步中找到的版本少一个的版本:

# svn ann -R 2344 that.file|grep distinctiveString
2211  yada yada distinctiveString blah blah

冲洗并重复,直到找到原件。

您可以通过简单地重复直到您不再看到该行并获取倒数第二次迭代的结果来省略每个步骤的 TRAC 查找。

好吧,这有点费力,但如果你真的想知道是谁介绍了那条线,它就可以完成这项工作。如果原始提交消息解释了一段晦涩的代码的意图,否则它看起来可以被删除,它可以节省您的时间。

于 2009-10-29T12:01:00.473 回答
1

你可以在你的 repo 中右键点击一个文件,然后选择 TortoiseSVN->Show Log 来获取这个文件受到影响的版本。在逐行的基础上,我没有办法知道。

于 2009-10-29T11:34:51.990 回答
0

我一直在寻找相同的功能,但最终到了这里,我不再继续寻找。

但这是我正在使用的一种技术,它可能对其他人有帮助:

  1. 确定感兴趣的线。最后调用它:第 123 行。
  2. 使用 Tortoise 来“显示日志”文件。
  3. 考虑日志中的完整列表。
  4. 如果您不知道什么时候会发生,请使用“快速排序思维”,我的意思是,转到列表中间的修订版,右键单击并“与工作副本比较”。
  5. 如果存在第 123 行(内容相同,但行号可能不同),那么您现在应该只考虑列表的下半部分,否则您现在应该只考虑列表的上半部分。返回第 4 步。

做起来比解释容易。由于本文是针对开发人员的,因此我知道无需添加更多详细信息:)

于 2018-09-21T13:03:48.017 回答