作为我之前提出的关于在两个源之间找到最佳匹配的问题的一部分,其中一个具有活动的 git repo 而另一个没有 git 历史记录,我编写了一个 perl 脚本来查找最接近的 git commit。
我正在重写脚本,这样您就不必猜测要使用哪个分支,但它会运行并在所有分支中找到最接近的匹配项,然后告诉您具有最佳分支的最佳提交。不幸的是,我发现我使用的测量方法可能不是“亲近度”的最佳判断。
目前,我diff -burN -x.git my_git_subtree my_src_subtree | wc -l
用来确定代码树的接近程度。这似乎或多或少地起作用,但我遇到了添加或丢失整个文件夹的情况,这些文件夹可能存在或不存在于另一个分支中。
有没有更好的方法来确定来源有多近?我正在设想一些比较目录结构的东西,可能还有多少行不同。可能只是将不同的参数传递给diff
,或者可能有另一个工具可以做类似的事情。