如何解决如何向gitk添加更好的复制检测?
在命令行Git中,show
,diff
和log
命令可以选择--find-copies-harder
。
我是否也可以告诉(或修补)gitk
使用此方法?我不时需要这样做,我的项目很小,以至于我不在乎性能降低。
(我不想再craft the history to force copy detection。)
我注意到--find-copies-harder
appears within the gitk code,但我不明白为什么。
因此,我尝试了命令行gitk --all --find-copies-harder
,但没有用:在提交中从另一个版本文件复制的新文件的提交中,gitk仍然没有显示该文件已被复制的事实。
更新:通过在字段--find-copies-harder
中输入Additional arguments to git log:
来编辑视图也无效:在命令行{{ 1}}是。
解决方法
必要的更改是:
diff --git a/gitk-git/gitk b/gitk-git/gitk
index 23d9dd1fe0..a98a115080 100755
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -7909,7 +7909,7 @@ proc diffcmd {ids flags} {
if {$log_showroot} {
lappend flags --root
}
- set cmd [concat | git diff-tree -r $flags $ids]
+ set cmd [concat | git diff-tree --find-copies-harder -r $flags $ids]
}
return $cmd
}
有了这个,gitk在以下测试存储库的第二次提交中显示副本
git init
echo "a file" > a
git add a
git commit -m "a file"
cp a b
git add b
git commit -m "a copy"
根据需要:
-------------------------------------- b --------------------------------------
similarity index 100%
copy from a
copy to b
,
如果不对gitk源代码本身进行修补,似乎不支持该功能。
例如,Git邮件列表中有一个similar request in Feb. 2020
从提交c1a63459ed73开始(“
gitk
:在退出时保留窗口尺寸 不使用ttk主题时”,2019年12月15日,Git v2.29.0-rc0),gitk
似乎缺少两项我认为是“杀手级”的功能,用于审核补丁(包括我自己的) 补丁,当然):
- 支持“
--function-context
”(“-W
”)选项,- 支持“
-O<orderfile>
”(又名“diff.orderFile
”)设置。
gitk
源代码中实际上提到了这些标志, 历史提交ee66e089c1d4(“gitk
:使更新更快”,2008-05-09,Git v1.5.6-rc0)。这些选项被存放在
vdflags($n)
中,然后被忽略。
评论说:“这些要求或影响差异输出,我们不这样做 想要”,我不明白为什么;我非常喜欢他们,请:)有人可以写
gitk
补丁来纪念“diff.orderFile
”吗? 和“--function-context
”?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。