Что происходит с метаданными в источнике? Есть ли инструменты для этого?

Я сравниваю две разные версии ядра (один официальный, один от производителя); есть тысячи файлов, единственная разница которых в метаданных в файлах. Метаданные выглядят как «$: Key: value $». Есть ли набор инструментов, которые изменяют этот материал? Что генерирует эти данные? Есть ли способ сделать diff, не загрязняя это, не запуская весь источник через 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 * 

3 Solutions collect form web for “Что происходит с метаданными в источнике? Есть ли инструменты для этого?”

Как говорит Тэнте, эти $Word: ...$ вставляются и обновляются некоторыми системами управления версиями (CVS и SubVersion, типично).

У GNU diff есть опция --ignore-lines-matching-re которая может исключать строки, которые соответствуют определенному регулярному выражению. Это должно сделать трюк:

 diff -wu --ignore-matching-lines='\$[AZ][az]*:.*\$' -r sourceA/ sourceB/ 

(Обратите внимание на параметр \ before $ чтобы он не интерпретировался как маркер конца строки в регулярном выражении.)

CVS (система управления версиями) может заменить определенные «заполнители» своими значениями при выписке (так что у вас есть, например, версия проверки или автора в файле).

Кажется, я помню, что биткистер также сделал это «расширить ключевые слова на кассе», по указанным датам, это может объяснить различия (но только если это для действительно древних источников ядра). После фикшированного биткира источники, когда вы проверяли git, которые не верят в расширение ключевых слов, поэтому они будут заморожены в этот момент времени.

Можем ли мы узнать, какие источники ядра вы сравниваете? Просто любопытно.

  • Где modprobe загружает драйвер, который udev запрашивает?
  • dd: writing '/ dev / null': на устройстве нет места
  • Как работает ошибка сегментации под капотом?
  • Являются ли потоки ядра Linux действительно ядрами?
  • Что 4.2 Оптимизация ядра могла бы я сделать, чтобы ускорить работу нетбука CR48?
  • Использование макроса MODULE_FIRMWARE (filename) в модулях Linux
  • Как именно printk работает внутри страны?
  • Как узнать, когда я могу реактивировать HWP (Hardware PStates)
  • Kernel Panic - не синхронизация: VFS: невозможно монтировать root fs после компиляции нового ядра
  • Найти или создать конфигурацию ядра двоичного кода ядра
  • Почему мой первый ramdisk настолько велик?
  • Linux и Unix - лучшая ОС в мире.