Кажется, что полки в командной строке черепахи и Mercurial не взаимодействуют?

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

C:> hg shelve ...

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

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

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

2 ответа

Стеллажи в "ядре" Mercurial (командная строка hg) и графический интерфейс TortoiseHG полностью независимы друг от друга, насколько я знаю.

(Исторически сложилось так, что эта странная ситуация возникла в результате того, что, как мне кажется, функция THG создавалась первой, а затем эквивалентная / похожая функция с тем же именем была позже добавлена ​​в собственно HG).


IMO, функция полок HG работает лучше, чем функция THG, с точки зрения эффективного использования логики слияния HG для внесения отложенных изменений в локальную рабочую папку во время небрежной операции. Когда я это понял, я больше не пользуюсь полкой THG, и это то, что я рекомендую.


Можно настроить THG Workbench для интеграции (в определенной степени) с функцией стеллажей HG. Инструкции:

Отредактируйте свой mercurial.ini файл настроек. (Либо через Файл> Настройки> Настройки Gobal> Кнопка " Редактировать файл", ИЛИ откройте файл в редакторе вручную).

Добавьте следующие разделы и элементы:

[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] секции).

Это даст новые кнопки на панели инструментов:

Одна стрелка положит на полку текущую рабочую папку, другая - на полку.

Очевидно, что запуск полок / полок таким способом довольно груб, но я считаю, что 99% времени это все, что мне нужно.


Заметки:

.INI изменения, указанные выше, также можно выполнить в разделе THG Workbench File> Settings> Tools GUI:

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

Чтобы добавить к существующему ответу, вот конфигурация для добавления контекстной команды для хранения выбранных файлов из пользовательского интерфейса фиксации:

      [tortoisehg]
...
workbench.commit.custom-menu = HG_shelve_selected

[tortoisehg-tools]
...
HG_shelve_selected.command = hg shelve {SELECTEDFILES}
HG_shelve_selected.enable = istrue
HG_shelve_selected.icon = thg-shelve-move-right-file
HG_shelve_selected.label = hg shelve
HG_shelve_selected.showoutput = False
HG_shelve_selected.tooltip = hg shelve

До сих пор не существует чистого способа (насколько я знаю) распаковать отдельные файлы.

Другие вопросы по тегам