Что делает опция -r журнала Git? - PullRequest
8 голосов
/ 12 мая 2019

Справочная страница git-log (1) говорит:

-r
Показать рекурсивные различия.

Итак, мы можем поставить этот вопрос по-другому:

Что подразумевается под "рекурсивные различия" в этом контексте.

После получения этого ответа от @phd я провел несколько тестов, направленных в указанном направлении:

Если я выполню следующие команды в текущей версии исходного хранилища Git (недавно клонировано из https://github.com/git/git.git) с извлеченным master (в данный момент указывающим на фиксацию 6a6c0f1), они выдают идентичный вывод:

git log --name-only -m
git log --name-only -m -r

(Чтобы это работало, возможно, придется увеличить diff.renameLimit до округления до 3150.) Я пробовал это с Git версий 2.10.2 и 2.17.1, получая равные результаты.

Кроме того, команда

git log --name-only -m master~..master
* 1 035 * выходы
commit 6a6c0f10a70a6eb101c213b09ae82a9cad252743
Author: Junio C Hamano <gitster@pobox.com>
Date:   Thu May 9 00:37:54 2019 +0900

    The eighth batch

    Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/RelNotes/2.22.0.txt

из последней строки которого видно, что эта команда просматривает подкаталоги даже без -r.

1 Ответ

4 голосов
/ 12 мая 2019

Опция берется из git diff-tree документов , а в git diff-tree она действительно работает; см. этот пример:

$ git diff-tree master~ master
:100644 100644 a2be0e5e5959396fb85445cfff714d7b04a1231b 5d7a2a0a4fd6fbaf439aa08bb7f17052a65a5236 M  ANNOUNCE
:100644 100644 22e746900ab77a79b4cb6780f536a517771fe276 f2aae0e9c7c87226f4f5c06ca006f4d04ce79dc1 M  ChangeLog
:040000 040000 54ef4d981c00162085347031d31286d630258153 76d21516ed54422a8981a31a9a0bf47dc5e5af6f M  mimedecode

$ git diff-tree -r master~ master
:100644 100644 a2be0e5e5959396fb85445cfff714d7b04a1231b 5d7a2a0a4fd6fbaf439aa08bb7f17052a65a5236 M  ANNOUNCE
:100644 100644 22e746900ab77a79b4cb6780f536a517771fe276 f2aae0e9c7c87226f4f5c06ca006f4d04ce79dc1 M  ChangeLog
:100644 100644 4ca2f25d2d061dba16294d67ab8018ea00be2b37 ead1ab38493c7e5119d8204a8731747cc534647c M  mimedecode/mimedecode.py

Параметр включен в документы по адресу git-diff-tree.txt , а файл включен в git-log.txt через diff-options.txt.

Я подозреваю, что включение опции в git log документы является артефактом генерации документов. По крайней мере, я не могу сделать так, чтобы опция работала для меня в git log.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...