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

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

  • Модуль ядра VirtualBox, устанавливающий проблему
  • Зачем мне нужен ntfs-3g, когда я уже включил поддержку NTFS в ядре?
  • Предотвратите использование usbhid USB-устройства
  • Что такое интерфейс loopback
  • Что означает «системный вызов», если не реализация на языке программирования?
  • Как использовать интерфейс Linux kernel bind / unbind для USB-HID-устройств?
  • Как убедиться, что определенная функциональность (например, Alt + Ctrl + F1, переключение в tty) доступна в системе обмена файлами?
  • Ошибочное объяснение виртуальной памяти в TLDP
  • 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, которые не верят в расширение ключевых слов, поэтому они будут заморожены в этот момент времени.

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

    Linux и Unix - лучшая ОС в мире.