我有一行代码似乎已注释。基本上我想要找到的是更改代码中这一行的修订。
那么,是否可以在 TortoiseSvn 日志中看到与特定关键字相关的代码变化?
我有一行代码似乎已注释。基本上我想要找到的是更改代码中这一行的修订。
那么,是否可以在 TortoiseSvn 日志中看到与特定关键字相关的代码变化?
您要做的是对该源文件执行Blame ,它会向您显示更改每一行代码的修订。
我不知道有任何命令能够为给定的代码行提供所有修订...您可以做的是在单个文件上显示日志,然后查看发生的每个修订随着时间的推移。
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 查找。
好吧,这有点费力,但如果你真的想知道是谁介绍了那条线,它就可以完成这项工作。如果原始提交消息解释了一段晦涩的代码的意图,否则它看起来可以被删除,它可以节省您的时间。
你可以在你的 repo 中右键点击一个文件,然后选择 TortoiseSVN->Show Log 来获取这个文件受到影响的版本。在逐行的基础上,我没有办法知道。
我一直在寻找相同的功能,但最终到了这里,我不再继续寻找。
但这是我正在使用的一种技术,它可能对其他人有帮助:
做起来比解释容易。由于本文是针对开发人员的,因此我知道无需添加更多详细信息:)