Как контролировать длину хеша в заголовке git diff - PullRequest
0 голосов
/ 14 января 2019

Вывод git diff содержит заголовок примерно так:

index f8fdb16de,78132574a..000000000

В git help diff это объясняется так:

2. It is followed by one or more extended header lines (this example shows a merge with two parents):

       index <hash>,<hash>..<hash>
       mode <mode>,<mode>..<mode>
       new file mode <mode>
       deleted file mode <mode>,<mode>

Я хочу использовать git diff для создания патчей, и я хочу, чтобы эти патчи имели предсказуемый формат, чтобы их можно было сравнивать. Для этого мне нужна фиксированная длина хеша в заголовке «index ..».

Как я могу контролировать длину этих хешей?

Я пробовал --abbrev = 7, но, похоже, это не дает никакого эффекта.

Я все еще вижу, как мои патчи обновляются так:

-index 52a2a35..7813257 100755
+index 52a2a357e..78132574a 100755

1 Ответ

0 голосов
/ 14 января 2019

Опция --abbrev работает только для «вывода в формате diff-raw и строк заголовка diff-дерева». Для стандартного вывода патча вы можете использовать git diff --full-index, чтобы получить полный, без сокращений идентификатор BLOB-объекта. Из справочной страницы :

--full-index
Вместо первой горстки символов покажите полный имена объектов блоба post-image в строке index при генерации выход в формате патча.

Это выдаст результат как:

diff --git a/foo b/foo
index c7bc37b70c7e29e3e4ed048c22ca3929367aa171..ab10096fde76d8c1d6172bd09d0dc4a18fb2c2fa 100644
Binary files a/foo and b/foo differ
...