私は2つの異なるカーネルバージョン(公式バージョンと製造元バージョン)を比較していますが、ファイルのメタデータだけが異なります。メタデータは "$:Key: value$" と同じです。これらを修正するツールセットはありますか?このデータは何から生成されますか? sedで完全なソースコードを実行して、汚染することなく比較を実行する方法はありますか?
一例:
--- ./drivers/atm/idt77252.h 2010-10-05 14:53:01.787778390 -0400
+++ ../linux-2.6.21.x/drivers/atm/idt77252.h 2010-03-26 03:08:26.000000000 -0400
@@ -1,8 +1,8 @@
/*******************************************************************
- * ident "$Id: idt77252.h,v 1.2 2001/11/11 08:13:54 ecd Exp $"
+ * ident "$Id: idt77252.h,v 1.1.1.1 2007-05-25 06:50:05 bruce Exp $"
*
- * $Author: ecd $
- * $Date: 2001/11/11 08:13:54 $
+ * $Author: bruce $
+ * $Date: 2007-05-25 06:50:05 $
*
* Copyright (c) 2000 ATecoM GmbH
*
答え1
Tanteが言ったように、これは$Word: ...$
いくつかのバージョン管理システム(通常はCVSとSubVersion)によって挿入され更新されます。
GNUには、特定の正規表現に一致する行を除外するdiff
オプションがあります。--ignore-lines-matching-re
これにより、トリックを実行できます。
diff -wu --ignore-matching-lines='\$[A-Z][a-z]*:.*\$' -r sourceA/ sourceB/
(正規表現で行末マークとして解釈されないように、\
前の内容を参照してください。)$
答え2
CVS(バージョン管理システム)には、チェックアウト時に特定の「プレースホルダ」をその値に置き換える機能があります(たとえば、ファイル内のチェックアウトされたバージョンや作成者を見つけることができます)。
答え3
私はbitkeeperが「チェックアウト時にキーワード拡張」ダンスを行ったことを覚えているようです。これは参照日による違いを説明できます(ただし、実際に古いカーネルソースの場合のみ)。 Bitkeeperが失敗した後にgitにチェックインしたとき、ソースコードはキーワード拡張を信頼していないため、その時点で凍結しました。
どのカーネルソースを比較しているのかわかりますか?ただ気になりました。