Полки в командной строке Tortoise и Mercurial не взаимодействуют друг с другом?

Если я добавлю что-нибудь на полку Mercurial в командной строке:

C:> hg shelve ...

когда я затем смотрю в TortoiseHG Workbench в меню Репозиторий> Полка>, НЕТ новой соответствующей записи (в раскрывающемся списке).

Точно так же, если я сделаю обратное и выполню операцию полки в THG, а затем запустил hg shelve -l или просто hg unshelve в командной строке, кажется, что новая полка будет проигнорирована.

Почему это происходит? Есть ли настройка или что-то подобное, что влияет на это?


2
236
1

Ответ:

Насколько мне известно, функции полок в «ядре» 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 есть другие варианты.