找出谁编写/编辑了这行代码的最简单方法是啥?

Posted

技术标签:

【中文标题】找出谁编写/编辑了这行代码的最简单方法是啥?【英文标题】:What is the easiest way to figure out who wrote/edited this line of code?找出谁编写/编辑了这行代码的最简单方法是什么? 【发布时间】:2010-09-26 22:21:33 【问题描述】:

这显然需要源文件受源代码控制。理想情况下,我希望有一个在 IDE(Eclipse、Visual Studio 等)下工作的工具——但外部工具也会很好。显然,可以手动浏览文件的以前版本,并比较各个版本,但我正在寻找一种能够快速查看代码部分负责人的方法。

我正在使用 CVS,但该工具应理想地与不同的源代码控制系统一起使用。

【问题讨论】:

啊,这就是所有版本控制反对者的根源。基本责任。 :-o 【参考方案1】:

看起来像 blame function,在 eclipse with CVS 或 Subversion 中支持(也在 eclipse 中)

正如您所提到的,该功能的 eclipse 名称是 Show Annotations

【讨论】:

这正是我想要的。此功能还与“历史记录”视图同步,便于查看相关签到的详细信息。【参考方案2】:

您没有提到您使用的是哪个源代码控制。

如果您使用的是 Subversion,可以查看:

svn blame

:)

【讨论】:

他在最初的帖子中没有。 :)【参考方案3】:

对于带有 TFS 的 Visual Studio .NET。

该功能是“注释”,与 Blame 的工作原理几乎相同。

(我个人将这些称为团队的猎巫工具)。

【讨论】:

【参考方案4】:

这个问题相当广泛/开放。不知怎的,这是个好主意,可以作为参考……

在工作中,我使用带有图形界面的 Perforce。 Time-lapse 视图允许查看文件,对于每一行,它已更改的修订版本和详细信息(谁提交了更改,何时等)。您可以移动滑块来查看以前的版本。 有命令行版本:p4 annotate

我开始使用 Mercurial,所以我查看了它。 Version control systems comparison(好网站,我刚发现)显示命令是hg annotate

【讨论】:

我发现 TortoiseHg(Mercurial 客户端)也包含这个功能(Annotate Files)【参考方案5】:

在包括CVS、Perforce、AccuRev、Mercurial和Team Foundation Server在内的许多版本控制系统中,命令是annotate

在Subversion 和RCS 中,命令为blame

例如,使用 CVS:

cvs annotate foo.cc > foo_changes.txt

将创建foo_changes.txt,其中列出了与当前版本foo.cc 中每一行的最新更改相关联的修订号和用户名。对于文件的先前版本或标记版本,使用不同的选项将为您提供相同的信息。

我也需要回答这个问题,但是在阅读已经发布的答案时它并没有立即跳出来,所以希望这个摘要应该有所帮助。

【讨论】:

【参考方案6】:

在 AccuRev 中,使用注释 +“版本滑块”功能更加智能,您可以选择浏览历史文件的注释版本:

(不仅是谁更改了最新修订版的内容,还包括所有个修订版)

(来源:accurev.com)

【讨论】:

【参考方案7】:

对于 Eclipse 中的 perforce 插件,注释未显示在上下文菜单中。 所以我需要使用:p4 annotate my-file,然后使用 Eclipse 浏览历史记录。

【讨论】:

以上是关于找出谁编写/编辑了这行代码的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

为 C/C++ 编写检测分析器的最简单方法是啥?

在 python 中设置基本记录器的最简单方法是啥?

编辑 PE 可执行文件以使其在启动时加载指定的 DLL 的最简单快捷的方法是啥?

Meteor 模板:检查用户是不是登录的最简单方法是啥?

在 Perl 中写入文件时测试错误处理的最简单方法是啥?

以二进制模式写入标准输出的最简单方法是啥?