有一种方便的方法来跟踪kernel.config文件吗?每次运行make menuconfig
时,.config都会被编辑,即使我没有更改任何值,它也会更改。
当我执行diff时,.config似乎有所不同,但它只是把行搞砸了:
same lines, but at different position
从make
的角度来看,这是同一个文件。从git的角度来看,这是一个完全不同的文件,需要提交大量新的/编辑过的行。
我觉得我错过了什么。这应该是跟踪.config文件的正确方法:)
感谢
一个愚蠢(但简单)的方法总是只区分缺失/添加的行(而不是放在其他地方的行),那就是在比较和添加到存储库之前先sort
.config文件,并使用"base"排序的.config进行比较。
请注意,这将在开头存储所有空白和空注释行,但将保留(未)注释行在其相关位置。这是我的.config:的一个例子
$ sort /boot/config-2.6.35-24-generic
...
CONFIG_TRACING=y
CONFIG_TRANZPORT=m
# CONFIG_TREE_PREEMPT_RCU is not set
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_TREE_RCU=y
CONFIG_TR=y
CONFIG_TTPCI_EEPROM=m
CONFIG_TULIP=m
# CONFIG_TULIP_MMIO is not set
# CONFIG_TULIP_MWI is not set
# CONFIG_TULIP_NAPI is not set
CONFIG_TUN=y
...
我创建了一个包含的.git/hooks/pre-commit
文件
#!/bin/sh
uname -a > uname.log
lspci -k > lspci.log
grep -e "^#" -v .config | sort > .config.sorted
您可以git add .config.sorted
并将其与diff进行比较。这两个日志文件跟踪系统中的更改。另外,可以使用/usr/src/linux/scripts/diffconfig .config .anotherconfig
进行比较。