Кажется, что полки в командной строке черепахи и 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
До сих пор не существует чистого способа (насколько я знаю) распаковать отдельные файлы.