我只是克隆了一个旧的存储库,其中包含一些Linux内核模块(不要问)。如果我克隆在Linux机器上,一切都很好。但是,在我的Mac上,某人(大概是Mac OS X)对模块进行了二进制更改。我已经禁用了自动c。

这是输出的 git diff -p --stat 直接地 克隆之后:

 .../kernel/net/ipv4/netfilter/ipt_ecn.ko           |  Bin 3853 -> 4535 bytes
 .../kernel/net/ipv4/netfilter/ipt_ttl.ko           |  Bin 3458 -> 3904 bytes
 .../kernel/net/netfilter/xt_connmark.ko            |  Bin 4534 -> 5618 bytes
 .../2.6.26-2-686/kernel/net/netfilter/xt_dscp.ko   |  Bin 4378 -> 5217 bytes
 .../2.6.26-2-686/kernel/net/netfilter/xt_mark.ko   |  Bin 3679 -> 4334 bytes
 .../kernel/net/netfilter/xt_rateest.ko             |  Bin 4545 -> 7137 bytes
 .../2.6.26-2-686/kernel/net/netfilter/xt_tcpmss.ko |  Bin 3841 -> 6553 bytes
 7 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ecn.ko b/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ecn.ko
index 76d7d8d..b1470d6 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ecn.ko and b/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ecn.ko differ
diff --git a/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ttl.ko b/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ttl.ko
index d974dc9..9dcb633 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ttl.ko and b/i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ttl.ko differ
diff --git a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_connmark.ko b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_connmark.ko
index d9381a6..14c2a2c 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_connmark.ko and b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_connmark.ko differ
diff --git a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_dscp.ko b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_dscp.ko
index 36af201..178adfa 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_dscp.ko and b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_dscp.ko differ
diff --git a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_mark.ko b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_mark.ko
index 2dd1a0a..1329162 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_mark.ko and b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_mark.ko differ
diff --git a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_rateest.ko b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_rateest.ko
index 8678387..b23e514 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_rateest.ko and b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_rateest.ko differ
diff --git a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_tcpmss.ko b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_tcpmss.ko
index 13e4891..7c3c61c 100644
Binary files a/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_tcpmss.ko and b/i686/modules/2.6.26-2-686/kernel/net/netfilter/xt_tcpmss.ko differ

一个 git reset --hard 也不能做到这一点。不过,确实会发生一些奇怪的事情:每次我重置,右侧的尺寸 git diff 在文件名更改中切换位置和一些资本化。我确实在Mac上有一个不敏感的文件系统,这可能是原因吗?我该如何解决此问题(如果可能的话,不重新格式化Mac)

有帮助吗?

解决方案

问题是由于HFS+文件系统的情况不敏感的默认值所致。

获取第一个有问题的文件:

i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ipt_ecn.ko

您会发现(如最初记录的)也有命名的文件 ipt_ECN.ko 在同一目录中:

git ls-tree HEAD -- i686/modules/2.6.26-2-686/kernel/net/ipv4/netfilter/ | 
grep '^ipt_.*\.ko'

从理论上讲,您可以重新格式化启动量以用使用案例敏感版本的HFS+,但这往往会引起随机应用程序的问题(例如,存储/安装文件名称的文件 foo, ,但后来仅尝试读取名为的文件 Foo).

缺少Bakup/Regrat/Restore,您可以使用磁盘图像进行工作,该磁盘图像配有案例敏感的HFS+。使用磁盘实用程序创建新的磁盘映像(可能是“稀疏捆绑包”图像),然后将您的工作树放在该卷中(它将安装在下面 /Volumes/)。您可能需要创建一个默认的磁盘映像,然后通过在rsulting卷中指定“ Mac OS扩展(CASIS敏感,日记)”来重新格式化它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top