gitk в голом каталоге

Раньше я мог запускать gitk в чистом каталоге на удаленном сервере.

Я получил новую машину с Win10, установил git с git-scm .com, что дало мне git и git Bash. Теперь, когда я иду на тот же удаленный сервер

 MINGW64 /t/git/MyProject (BARE:master)$ gitk

gitk говорит фатально: эта операция должна выполняться в рабочем дереве

Я вроде как понимаю, что происходит, и да, я могу $ git log

Но почему это работало раньше?


person shlasasha    schedule 29.01.2020    source источник


Ответы (2)



gitk says fatal: this operation mus be run in a work tree

В Git 2.29 (четвертый квартал 2020 г.) gitk должна решить эту проблему при запуске в чистом репозитории.

Помощник: Эрик Саншайн
Подписал: Пол Маккеррас

См. раздел commit a99bc27 (15 декабря 2019 г.) и коммит f177c49 (02 ноября 2019 г.), автор Роман Донченко (SpecLad).
См. commit 2faa6cd (9 апреля 2020 г.), Йоханнес Сикст (j6t).
См. коммит 113ce12 (11 февраля 2020 г.) от Стефан Доттервейх (stefandtw).
См. commit c1a6345 (15 октября 2019 г.), автор Эрик Хубер (echuber2).
См. коммит d4247e0 (7 декабря 2019 г.) от Казухиро Като (kkato233).
См. commit b8b6095 (12 декабря 2019 г.), автор Beat Bolli (bbolli) .
См. раздел commit e2b9cb1 (3 октября 2020 г.) и commit e272a77 (23 января 2020 г.), автор Хунио С. Хамано (gitster ).
См. commit 6cd8049 (3 октября 2020 г.) Пол Маккеррас (paulusmack).
См. commit e244588 (10 сентября 2020 г.) от Дентон Лю (Denton-L).
(Объединено Юнио С. Хамано -- gitster -- в коммит 0cf28f6, 5 октября 2020 г.)

784b7e2f (gitk: исправлено внешнее различие с отдельным рабочим деревом, 04.04.2011, Git v1.7.9-rc0) добавлен безусловный вызов git rev-parse --show-toplevel(man), чтобы установить глобальную переменную довольно рано в ходе выполнения программы, чтобы позже можно было узнать местоположение рабочего дерева, если/когда пользователь выбирает запуск внешнего сравнения через процедуру external_diff_get_one_file.
До этого изменения код внешнего сравнения предполагал, что родительский каталог каталога .git является верхним уровнем рабочего дерева.

Последние версии git(man) однако замечает, что rev-parse --show-toplevel, выполненный в пустом репозитории, является ошибкой, что делает gitk stop, даже до того, как пользователь попытается запустить внешний diff.

Используйте помощник gitworktree, представленный в 65bb0bda (gitk: исправлено отображение файлов при фильтрации по path, 13 декабря 2011 г., Git v1.7.10-rc3 -- слияние) , который подготовлен к сбоям из rev-parse --show-toplevel и другими способами, он пытается найти верхний уровень рабочего дерева вместо того, чтобы обойти эту проблему.
Результирующее значение в $worktree global при запуске в чистом репозитории равно подделка, но код все равно не подготовлен для правильного запуска внешнего diff без рабочего дерева ;-)

gitk: будьте готовы к запуску в чистом репозитории.

person VonC    schedule 11.10.2020