5

默认情况下,我已配置hg log~/.hgrc仅列出来自当前分支的提交:

[defaults]
log = --branch .

但是,有时我真的希望看到来自所有分支的提交。有没有办法告诉hg log从命令行调用时不使用配置的默认值而是回退到内置行为?~/.hgrc作为一个完全忽略这个特定调用的蛮力解决方案hg log对我来说很好。

我知道不推荐使用默认值来支持 aliases ,但是不能使用与现有命令相同的名称创建别名,这是我想要的,以便不必学习新的命令名称,尤其是。当~/.hgrc设置由多个开发人员共享时。

编辑:无法创建与现有命令同名的别名是已修复的回归

4

4 回答 4

6

您应该能够使用--config覆盖您的设置.hgrc

hg --config defaults.log= log

从手册页:

--config    set/override config option (use 'section.name=value')
于 2012-08-21T01:29:10.143 回答
3

我已经浏览了 Mercurial 网站上的错误报告,但找不到任何解决方法,响应是笼统的“这已被弃用”。

就个人而言,不向我学习命令并不是不迁移默认命令值的正当理由。一种可能的替代方法是远离每个存储库设置并在用户级别进行一些设置,因此您可以设置自己的默认值/别名。


现在不推荐使用默认值,因此您应该删除它并每次都指定参数。在文档中确认:

https://www.mercurial-scm.org/wiki/Defaults

(不推荐使用默认值。不要使用它们。改用别名)

尝试:

[alias]
blog = log --branch

用法:

hg blog <branch name>
hg blog default
于 2012-07-24T08:41:19.407 回答
2

我知道我在这里复活了一个老问题,但是这个声明

不能使用与现有命令相同的名称创建别名

是不正确的。

例如,在该部分的.hgrc文件中[alias],您可以:

[alias]
add = add --dry-run

这将使add命令始终进行空运行,而不是实际递归地在存储库中添加所有未知文件。

于 2014-08-02T03:05:37.633 回答
0

对于我的用例来说,这似乎是最好的解决方案,它确实暂时~/.hgrc完全忽略了该文件。这可以通过设置HGRCPATH为空字符串来完成,这会导致 Mercurial 仅从.hg/hgrc当前存储库中读取文件:

HGRCPATH="" hg log
于 2012-07-30T09:36:18.600 回答