|
|
1
4
你最好的办法可能是把自己限制在特定的文件里。如果您只考虑一个文件,那么迭代该文件的所有版本不需要太长时间(使用
以获得所有提交及其差异大小的良好列表(前三列将是SHA1、添加的行数和删除的行数)。然后你就可以用管道把它输送到
如果您不能将自己限制在一小部分要测试的文件中,我可能会尝试手动实现类似于
编辑:另一种可能性,在
Douglas' answer
,如果您认为某些文件可能
对于那些在某个提交中的人来说,就是使用
|
|
|
2
2
这不是一个很好的解决方案,但是要猜测它可能是哪一个修订版:假设tar ball中的一些文件在分支之后没有被更改。跑 git hash object 对tar ball中的每个文件,然后使用 git show git whatchanged . 然后,您的问题的答案可能是提交最常见的文件,但仍然会有点碰运气。 |
|
|
3
1
根据araqnid所说的,我想出了9c6c864426bf88429e77c7e22b5aa78e9295b97a(只要求在0.61.0和HEAD之间的东西),这可能不是最好的)你可能会做得更好,像这样的东西
假设您已经将tarball导入git并签出了该修订版(我是通过解构然后
|
|
|
4
0
叉子是怎么做的?是别人做的克隆然后自己做的吗?如果是这样,那么这真的很容易。您所需要做的就是创建一个从fork中提取代码的本地分支。git将看到分叉分支的祖先指向原始存储库中的一个提交,可以说,它将“连接点”。。。它将把历史从原始存储库重新连接到fork。 您应该能够做到:
这时,你可以跑了
|
|
|
5
0
现在,对于master中的每个修订,只需与树/修订('imported')进行diff,并输出diff的大小。比如:
因此,根据一个非常粗略的经验法则,补丁大小最小的版本将是“最接近的”(一个相同的修订将产生一个补丁大小为0的补丁,其他任何东西都肯定是非零的,而且更改的越多,越大)。 |
|
|
6
0
为此,将tarball内容添加到您的存储库中(您无论如何都要这样做)。安装Meld和
在不同的提交上,直到找到差异最小的一个。此命令将打开
Meld显示两个非常不同的提交:
显示两个类似的提交:
|