Way*_*ner 8 git ignore revision-history
git blame --ignore-revs-file显然是现代 Git 中存在的一个选项。
只有一个问题。它不起作用。
或者至少,它对我不起作用:
您可以将其添加到 shell 脚本中:
mkdir -p /tmp/blarp
cd /tmp/blarp
git init
cat << EOF > file.txt
one
two
three
EOF
git add file.txt
git commit --author "One <one@example.com>" -m 'one commit'
cat << EOF > file.txt
one
awesome
three
EOF
git add file.txt
git commit --author "Two <two@example.com>" -m 'two commits'
cat << EOF > file.txt
one
awesome
sauce
EOF
git add file.txt
git commit --author "One <one@example.com>" -m 'three commits'
git rev-parse HEAD~1 > ignore.txt
git blame --ignore-revs-file=ignore.txt file.txt
Run Code Online (Sandbox Code Playgroud)
对我来说,这表明:
^b6d40d5 (One 2019-12-30 21:47:15 +0000 1) one
1c185c4c (Two 2019-12-30 21:47:15 +0000 2) awesome
d8b9bafd (One 2019-12-30 21:47:15 +0000 3) sauce
Run Code Online (Sandbox Code Playgroud)
但我希望看到
^b6d40d5 (One 2019-12-30 21:47:15 +0000 1) one
^b6d40d5 (One 2019-12-30 21:47:15 +0000 2) two
d8b9bafd (One 2019-12-30 21:47:15 +0000 3) sauce
Run Code Online (Sandbox Code Playgroud)
或者
^b6d40d5 (One 2019-12-30 21:47:15 +0000 1) one
d8b9bafd (One 2019-12-30 21:47:15 +0000 2) awesome
d8b9bafd (One 2019-12-30 21:47:15 +0000 3) sauce
Run Code Online (Sandbox Code Playgroud)
但事实并非如此。我确实发现,如果更改只是空白更改,它们将被忽略……但 git 文档对此并不明确,只是建议:
--ignore-revs-文件
忽略文件中列出的修订,该文件的格式必须与 fsck.skipList 相同。此选项可能会重复,并且这些文件将在使用blame.ignoreRevsFile 配置选项指定的任何文件之后进行处理。空文件名“”将清除以前处理过的文件中的转速列表。
任何线索为什么git blame --ignore-revs-file=revs-to-ignore对我来说似乎不能正常工作?
检查 Git 2.29(2020 年第 4 季度)是否修复了以下问题:“ git blame --ignore-rev/--ignore-revs-file” (man)未能验证其输入是否有效修订,并且未能考虑到用户可能想要提供带注释的标签而不是提交,这有已更正。
请参阅Junio C Hamano ( )的提交 610e2b9和提交 f58931c(2020 年 9 月 24 日)。\n (由Junio C Hamano 合并 -- --在提交 230ff3e中,2020 年 10 月 4 日)gitstergitster
\n\n\n
blame:验证并剥离忽略列表上的对象名称
\n\n该命令从命令行或文件读取要放置在忽略列表中的对象名称列表,但不会检查它们的对象类型(从文件中读取的对象甚至不会检查对象是否存在)。
\n扩展
\noidset_parse_file()API 并允许它接受一个回调,该回调可用于终止(例如,当读取不适当的输入时)或修改读取的对象名称(例如,当读取指向提交的标记,并且调用者想要一个提交对象时) name),并在处理忽略列表的代码中使用它。
在 Git 2.30(2021 年第一季度)中,“ ( man ) ”学会了忽略输入中不存在的对象名称,而不是抱怨。git blame --ignore-revs-file=<file>
请参阅Ren\xc3\xa9 Scharfe ( )的提交 c714d05(2020 年 11 月 10 日)。\n (由Junio C Hamano 合并 -- --在提交 b4e245a中,2020 年 11 月 18 日)rscharfegitster
\n\n\n
blame:静默忽略无效的忽略文件对象报告人:Jean-Yves Avenard
\n
\n签署人:Ren\xc3\xa9 Scharfe
\n审阅人:Barret Rhoden
\n\n自610e2b9240(“
\nblame:验证并剥离忽略列表上的对象名称”,2020-09-24,Git v2.29.0-rc0 -批量 #19中列出的合并)(man)报告检查文件中是否指定了对象加载和配置选项是实际对象,如果不是,则死亡。目的是向用户报告拼写错误。git blame--ignore-rev--ignore-revs-fileblame.ignoreRevsFile这也破坏了对多个存储库使用单个忽略文件的能力。
\n
\n文件中的拼写错误可能比命令行中的可能性小,因此警报在这里不太有用。
\n通过跳过非提交而不死来恢复该功能。
| 归档时间: |
|
| 查看次数: |
1463 次 |
| 最近记录: |