Git 2.18 (Q2 2018) должен обнаружить, «что это тот же каталог, просто другое имя», потому что «git status
» научился обращать внимание на переменные конфигурации diff, связанные с пользовательским интерфейсом, такие как diff.renames
.
См. commit dc6b1d9 (04 мая 2018) Экхард С. Маас (``) .
(Объединено Junio C Hamano - gitster
- в коммит 1e174fd , 23 мая 2018 г.)
wt-status
: используйте настройки от git_diff_ui_config
Если вы делаете что-то вроде:
- git add .
- git status
- git commit
- git show (or git diff HEAD)
можно ожидать аналогичного вывода из git status
и git show
(или аналогичных программ, связанных с diff).
Обычно это не так, поскольку git status
имеет жестко закодированные значения для параметров, связанных с diff.
При этой фиксации жестко заданные настройки удаляются из статуса.
команда в пользу значений, предоставленных git_diff_ui_config
.
Ниже приведены некоторые замечания о конкретных вариантах, которые были трудными.
закодировано в git status
:
`diffopt.detect_rename`
С самого начала состояния git в a3e870f («Добавить» commit »
helper script ", 2005-05-30, Git v0.99), git status
всегда использовал обнаружение переименования,
в то время как с такими командами, как show и log, нужно было активировать его с помощью
опция командной строки.
После 5404c11 ("diff: активировать diff.renames
по
default ", 2016-02-25, Git v2.9.0) совпадение по умолчанию ведет себя так же, но изменение diff.renames
на другие значения может нарушить согласованность между
git status
и другие команды снова.
С этим коммитом один управляйте тем же поведением по умолчанию с diff.renames
.
`diffopt.rename_limit`
Точно так же есть опция diff.renamelimit, чтобы настроить этот предел для
все команды кроме статуса git. С этим коммитом git status также будет чтить
те.
И то же самое предложение Git 2.18 status.renames
, которое может быть полезно для тех, кто хочет это сделать, не отключая обнаружение переименования по умолчанию, выполняемое
Команда "git diff
".
См. коммит e8b2dc2 (11 мая 2018) Беном Пиартом (benpeart
) .
(Объединено с Junio C Hamano - gitster
- в коммит 5da4847 , 30 мая 2018 г.)
добавить конфигурацию состояния и параметры командной строки для обнаружения переименования
После выполнения слияния с конфликтами git status
по умолчанию
попытка обнаружить переименования, что приводит к проверке многих объектов.
В виртуальном репо эти объекты не существуют локально, поэтому логика переименования
запускает их выборку с сервера. Это приводит к статусу вызова
с этим патчем уходит много часов на очень большие репозитории против секунд.
Добавить новый параметр конфигурации status.renames
, чтобы включить отключение переименования
обнаружение во время статуса и фиксации.
Этот параметр по умолчанию будет иметь значение diff.renames.
Добавить новую настройку status.renamelimit
, чтобы включить ограничение времени
потратил на поиск неточных переименований во время статуса и коммита.
Эта настройка по умолчанию будет иметь значение diff.renamelimit
.
Добавить --no-renames
параметр командной строки к состоянию, который позволяет переопределить
Настройка конфигурации из командной строки.
Добавьте к статусу параметр командной строки --find-renames[=<n>]
, позволяющий обнаруживать переименования и дополнительно устанавливать индекс подобия.