Rob*_*nes 5 git diff linux-kernel
我希望能够直接从Linux Kernel GIT存储库中分配文件/目录,而无需下载完整的源代码.
具体来说,我对两个可能的解决方案感兴趣:
编辑
作为我正在寻找的一个例子,我曾经在CVS回购中使用CrossVC来完成上述任务.
kernel.org上的Gitweb允许查看任意提交之间的差异,例如参见v2.6.32-rc6和v2.6.32-rc7之间差异的以下链接:
http://git.kernel.org/?p = linux/kernel /git/torvalds/linux-2.6.git;a=commitdiff;hp=refs/tags/v2.6.32-rc6;h=refs/tags/v2.6.32-rc7
(使用补丁链接获取可以应用的普通补丁),以及任意版本的文件之间/任意版本的任意文件之间,例如:差异到历史视图中的当前链接.
不幸的是,官方的gitweb版本(与Git本身一起分发),以及kernel.org使用的fork都没有生成任意提交之间的链接,所以你必须手工(手工创建)URL来提供给gitweb.在commitdiff
view(action)的情况下,你需要的iparameters是'h'
(hash)和'hp'
(hash parent); 在blobdiff
视图的情况下,它们是'hb
'(哈希基础)和'hpb'
(哈希父基础),以及'f'
(文件名)和'fp
'(文件父).
对于两个任意提交之间的差异(相当于git diff A B
命令行)
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;hp=A;h=B
对于同一文件的两个版本之间的差异(相当于git diff A B <filename>
).
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blobdiff;f=<filename>;hpb=A;hp=B
注意核心gitweb(但不是kernel.org目前使用的fork)你可以使用path_info版本,例如:
http://repo.or.cz/w/git.git/blobdiff/A..B:/<filename>
如何找到它
在Web界面中查找提交是一个合并提交,例如
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1c5aefb5b12a90e29866c960a57c1f8f75def617
查找提交与第二个父项之间差异的链接,例如
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/diff/?id=1c5aefb5b12a90e29866c960a57c1f8f75def617&id2=54a217887a7b658e2650c3feff22756ab80c7339
将比较提交的SHA-1替换为您要比较的修订名称或修订标识符,例如在v3.15-rc8和v3.15-rc7之间生成差异
https://git.kernel.org/cgit/linux/kernel /git/torvalds/linux.git/diff/?id=v3.15-rc8&id2=v3.15-rc7
或生成补丁(rawdiff)
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/rawdiff/?id=v3.15-rc8&id2=v3.15-rc7
创建 diff 的系统(无论是您的网络服务器还是本地系统)必须拥有 git 存储库的完整副本(克隆)。
所以你不能做“远程差异”。
因此,如果您想避免执行git clone
整个内核的操作,为什么不将 Web 浏览器指向http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a =总结?