标签: blame

归咎于不同位置的早期版本的文件

有一次,我的git存储库重新组织了它的路径.

我经常想在移动前对修订版的文件负责.

什么是git责备咒语责备当前存储库中不存在的文件?

我试过了:

> git blame new/path/to/file old_rev
fatal: no such path ... in old_rev

> git blame old/path/to/file old_rev
fatal: cannot stat path ... in old_rev

> git blame old_rev:old/path/to/file old_rev
fatal: cannot stat path ... in old_rev
Run Code Online (Sandbox Code Playgroud)

显然,我可以查看old_rev并指责相应的路径,但我宁愿避免这种情况.

git blame

22
推荐指数
1
解决办法
5757
查看次数

是否有类似于bzr qannotate的git blame gui?

作为一个以前的bzr用户和新手,git我正在努力寻找git blame类似的好GUI工具bzr qannotate.后者有两个主要观点:

  1. 具有短注释信息的文件内容查看器(谁在哪个版本中更改了行)+基于提交者ID和更改年龄的背景着色.
  2. 文件日志查看器:当我单击文件内容中的行时,我可以看到该行更改时的修订以及有关它的所有日志信息.

截图: 在此输入图像描述

我看到XCode IDE有类似内置的内容,虽然它在编辑器窗口内,因此不是很方便.

到目前为止,我已经尝试过GitX 0.7.1和M​​ac的GitHub - 他们都没有"责怪".

我刚刚检查了SourceTree for Mac,虽然它有责备支持,但它相当简陋,并且显示我几乎与命令行相同git blame,尽管我可以双击该行以查看相应的修订和另一个窗口中的更改.那仍然不如bzr qannotate.

我可以使用其他GUI工具吗?

git bazaar blame

20
推荐指数
3
解决办法
5070
查看次数

将`cloc`与`git blame`结合起来

cloc 使每个类型的每种语言(空白,注释或代码)能够计算存储在目录中的代码行数.

git blame 使人能够看到文件的哪个部分属于谁.

我正在寻找一种结合两者的方法,以便获得一个(三维)矩阵,列出每个用户每种语言的每种类型的代码行.

是否有优雅内置的方式来做到这一点还是应该一个"报废"的"怪"的部分(运行grepgit blame)每个用户的,并运行cloc它们来计算表中的每个用户?


编辑:

天真的方法(基于@Jubobs的评论):

  1. 首先为目录中的每个文件生成一个blame文件(不必显式).
  2. 与一些运行的grep喜欢grep "^[^(]*([^)]*)"捕捉到所有用户的列表,并与检索唯一身份sortuniq.
  3. 对于每个用户:生成文件夹和grep的卷影副本,grep "^[^(]*($user)"使得仅保留该用户的行.
  4. 在卷影副本上运行cloc.
  5. 为每个用户执行此操作,存储结果并将它们一起输出.

这或多或少是如何生成所需的输出.但是正如人们所看到的,这种方法进行了大量的复制(或至少存储在内存中),并且实际上可以通过在文件上运行一次而不是多次来计算每个用户的行数.


期望的输出:

就像是:

+--------+--------------------------------+--------------------------------+
|User    | C#                             | XML                            |
+--------+-------+-------+---------+------+-------+-------+---------+------+
|        | files | blank | comment | code | files | blank | comment | code |
+--------+-------+-------+---------+------+-------+-------+---------+------+
| Foo    |    12 |    75 |     148 | 2711 |     2 |    42 |       0 | …
Run Code Online (Sandbox Code Playgroud)

git blame cloc git-blame

18
推荐指数
1
解决办法
519
查看次数

svn:如何确定某一行的最后一次更改?

我有一些代码,我希望看到修订历史记录.在示例文件中,第300行包含"有趣"的内容.如何使用svn查看该行何时更改,并查看与该行更改有关的svn注释.(请注意,该文件的先前版本可能不会在第300行具有我的目标兴趣线).

svn blame

17
推荐指数
2
解决办法
2万
查看次数

如何在远程端存储库中'git blame'?

在我的服务器上,我托管我的个人git远程端项目(带gitosis),我已经构建了一个Web界面来浏览存储库(类似于Github).

在远程端,你不允许做很多事情,因为缺少一个工作树,这是正确的:顺便说一下,对于一个存储库资源管理器,几乎没有命令我可以做几乎所有事情.

除了git责备.

在远程端存储库中,我无法找到如何在没有工作树的情况下归咎于文件.你有什么想法吗?

git blame

14
推荐指数
1
解决办法
6434
查看次数

查找作者修改的所有当前行

我如何在git中确定仍然存在的来自特定作者的所有行.比方说,Tony已经参与了我的项目,我想找到我的开发分支中仍然存在的所有行,并且来自Tony撰写的提交?

git version-control blame git-blame

14
推荐指数
2
解决办法
5001
查看次数

使用git在文件的特定行上找到令牌的第一个介绍

假设我有一个文件A.cpp,我注意到该文件的第15行有错误.假设错误是函数上的"const",它返回一个指向成员变量的指针,这意味着在函数上使用const在技术上是正确的但在语义上是错误的.我想与作出改变的作者讨论语义.

使用git,有没有办法找出引入"const"令牌的修订版?更具体地说,我想知道谁引入了令牌.

"git blame"显示谁对该行进行了最后一次更改,但我实际上希望找到包含该令牌的第一个提交.

git version-control blame

13
推荐指数
2
解决办法
3443
查看次数

git责备多次修改一行?

如果一行在两个版本之间来回多次修改,git blame似乎只显示该行的最新提交.

是否可以让它显示该行的所有提交?

git blame

13
推荐指数
2
解决办法
2413
查看次数

从提交ID中查找git分支或分支

实际上,我试图获得有关合并冲突的报告.我使用'git blame'来查看谁更改了哪一行,但我找不到分支和存储库名称信息.

有没有办法从'git blame'或commit ids'中找到文件的存储库名称,分支名称和作者名称,这样每当发生合并冲突时,我都可以向触及该文件/行的作者发送电子邮件解决它.

git sha1 commit blame git-branch

12
推荐指数
1
解决办法
1万
查看次数

git blame - 忽略未提交的更改

部分输出来自git blame <file>:

    ...
   d6182477 (<author>          2012-06-22 09:44:02 -0400 239) ...
   d6182477 (<author>          2012-06-22 09:44:02 -0400 240) ...
   25f98f3f (<author>          2012-06-15 15:44:00 -0400 245) ...
   25f98f3f (<author>          2012-06-15 15:44:00 -0400 246) ...
   35853aa2 (<author>          2012-06-22 08:12:41 -0400 247) ...
   25f98f3f (<author>          2012-06-15 15:44:00 -0400 248) ...
-> 00000000 (Not Committed Yet 2012-06-27 08:33:35 -0400 249) ...
-> 00000000 (Not Committed Yet 2012-06-27 08:33:35 -0400 249) ...
   25f98f3f (<author>          2012-06-15 15:44:00 -0400 250) ...
   35853aa2 (<author>          2012-06-22 08:12:41 -0400 …
Run Code Online (Sandbox Code Playgroud)

git blame

12
推荐指数
1
解决办法
1966
查看次数

标签 统计

blame ×10

git ×9

git-blame ×2

version-control ×2

bazaar ×1

cloc ×1

commit ×1

git-branch ×1

sha1 ×1

svn ×1