git 中的 `--loc=surv` 是什么?

What is `--loc=surv` in git?

什么是--loc=surv?我在任何地方都找不到它的任何定义。

为了在 git 存储库中获取贡献统计信息,我在 GitHub 上找到了 git-fame by casperdcl。它提供了每个贡献者的贡献图表。 我不认为 git 中插入和删除的总和是一个很好的比例。但是 git-fame 提供了另一个选项,称为“幸存的代码行”(--loc=surv)。但我不明白它是什么。 我应该什么时候使用它?计算贡献度是否更好?

首先,它不是“在git”。这是添加到 casperdcl/git-fame in its release v1.14.0 Q4 2020, and commit 2d34d84.

的功能

任何名为 git-xxx(在 $PATH 中)的可执行文件都可以用 git xxx 调用,给人一种错觉 xxx 是一个 Git 命令。不是。

其次,如图issue 59,是默认选项。

I didn't expect any differences between git-fame and git-fame --loc=surviving - and there are none.

第三,它确实测量提交之间仍然存在的行(尚未添加或删除),这允许:

  • 关联选项,例如 --ignore-rev--ignore-revs-file=<f>(仅对幸存行有效),
  • 排除像 --cost 这样的选项(person-months (COCOMO) 或 person-hours 中的时间成本(基于提交时间),它仅基于增量(行 added/removed)

--loc=surv 表示“Surviving Lines of Code”,表示当前存在的代码,不包括删除(del)或过去的插入(ins)。

git-fame, casperdcl on this issue 的开发者回答了以下问题:

Does it just count the last revision on that line?

--loc=surv 确实算作“该行的最后一次修订”。还包含 -M-C 选项可能会有用。

looking for the best way to measure how much I have to pay my devs.

这里是龙... --cost 选项可以根据 https://github.com/casperdcl/git-fame#faqs 使用不同的模型来猜测小时和月份 - 但请注意:

  • 无法区分重构(可能价值较高)和重新格式化(可能价值较低)
  • 生成的代码(例如package-lock.json)可能更适合通过提交次数来衡量,而功能代码(例如train.py)可能更适合通过行数来衡量
  • 删除 --loc=del(删除错误代码)和过去的插入 --loc=ins(不再存在但影响当前代码背后思想的行)也可能有用
  • 一行代码可能比 100 行代码更有价值。质量只能由人来衡量
  • 审查其他人的代码可能很有价值,但不会出现在 Git 历史记录中
  • ...警告列表还在继续

我最多使用 git fame 作为帮助衡量贡献真实价值的众多方法之一。一种可能的策略是,如果您觉得自己无法审阅工作,请让人们审阅彼此的工作。我不建议仅根据 number/rate of commits/lines.

来付钱给人们