Если я добавлю что-нибудь на полку Mercurial в командной строке:
C:> hg shelve ...
когда я затем смотрю в TortoiseHG Workbench в меню Репозиторий> Полка>, НЕТ новой соответствующей записи (в раскрывающемся списке).
Точно так же, если я сделаю обратное и выполню операцию полки в THG, а затем запустил hg shelve -l
или просто hg unshelve
в командной строке, кажется, что новая полка будет проигнорирована.
Почему это происходит? Есть ли настройка или что-то подобное, что влияет на это?
Насколько мне известно, функции полок в «ядре» Mercurial (командная строка hg
) и графическом интерфейсе TortoiseHG полностью независимы друг от друга.
(Исторически сложилось так, что эта странная ситуация возникла, как я полагаю, функция THG была создана сначала до того, как эквивалентная / похожая функция с тем же именем позже была добавлена в собственно HG).
ИМО, функция полок HG работает лучше, чем функция THG, с точки зрения эффективного использования логики слияния HG для применения отложенных изменений к локальной рабочей папке во время операции снятия полки. Как только я понял это, я больше не использую полку THG, и это то, что я рекомендую.
Можно настроить THG Workbench для интеграции (до определенной степени) с функцией полок HG. Инструкции:
Отредактируйте файл настроек mercurial.ini
. (Либо с помощью кнопки Файл> Настройки> Глобальные настройки>Edit File, либо откройте файл в редакторе вручную).
Добавьте следующие разделы и элементы:
[tortoisehg]
...
workbench.custom-toolbar = HG_shelve HG_unshelve
и
[tortoisehg-tools]
HG_shelve.command = hg shelve
HG_shelve.enable = istrue
HG_shelve.icon = go-next
HG_shelve.label = HG_shelve
HG_shelve.showoutput = True
HG_shelve.tooltip = HG_shelve
HG_unshelve.command = hg unshelve
HG_unshelve.enable = istrue
HG_unshelve.icon = go-previous
HG_unshelve.label = HG_unshelve
HG_unshelve.showoutput = True
HG_unshelve.tooltip = HG_unshelve
(будьте осторожны, чтобы не дублировать существующие разделы [tortoisehg]
или [tortoisehg-tools]
).
Это приведет к появлению новых кнопок на панели инструментов:
Одна стрелка убирает текущую рабочую папку, другая - убирает.
Очевидно, что запуск shelve / unshelve таким способом довольно грубо, но я считаю, что в 99% случаев это все, что мне нужно.
Примечания:
Вышеупомянутые правки .INI
также можно выполнить через раздел графического интерфейса THG Workbench Файл> Настройки> Инструменты:
Вам не обязательно использовать эти конкретные значки, если вы предпочитаете что-то другое, у THG есть другие варианты.