如果我在命令行的 Mercurial 架子上添加一些东西:
C:> hg shelve ...
然后当我在Repository > Shelve >菜单下查看 TortoiseHG Workbench 时,没有新的相应条目(在下拉列表中)。
同样,如果我做相反的事情并在 THG 中执行搁置操作,然后运行hg shelve -l
或仅hg unshelve
在命令行上运行,它似乎忽略了新搁置。
为什么会这样?是否有影响这一点的设置或类似的东西?
如果我在命令行的 Mercurial 架子上添加一些东西:
C:> hg shelve ...
然后当我在Repository > Shelve >菜单下查看 TortoiseHG Workbench 时,没有新的相应条目(在下拉列表中)。
同样,如果我做相反的事情并在 THG 中执行搁置操作,然后运行hg shelve -l
或仅hg unshelve
在命令行上运行,它似乎忽略了新搁置。
为什么会这样?是否有影响这一点的设置或类似的东西?
hg
据我所知,“核心”Mercurial(命令行)和 TortoiseHG GUI 中的搁置功能完全相互独立。
(从历史上看,这种看似奇怪的情况是由于首先创建了 THG 功能,然后才将具有相同名称的等效/相似功能后来添加到 HG 本身)。
IMO 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]
部分)。
这将在工具栏上产生新按钮:
一个箭头将搁置当前工作文件夹,另一个将取消搁置。
显然,以这种方式运行搁置/取消搁置是相当粗粒度的,但我发现 99% 的时间这就是我所需要的。
笔记:
上述.INI
编辑也可以通过 THG 工作台文件 > 设置 > 工具GUI 部分完成:
如果您喜欢其他东西,则不必使用这些特定图标,THG 有其他选择。