我最近一直在尝试hg / mercurial,即与Fogcreek的窑一起使用,而我正在尝试弄清楚什么是必须的扩展。在扩展名列表中进行筛选有些棘手,因为即使它们的描述听起来很棒,我也不希望测试任何有缺陷或不切实际的扩展名。
那么,您使用哪些hg扩展名?
请参阅使用扩展
Answers:
我自己的命中清单:
您必须具备的简单方法:
color
:对诸如diff
和的命令的输出着色status
,这使得评估更加容易。pager
:浏览一次长输出页面。fetch
:一步就可以从另一个仓库中提取,更新和合并。graphlog
:在shell中显示修订图,对于查看日志历史记录中的分支非常有用。hgk
:使用图形界面浏览存储库(另请参见TortoiseHg和Murky)如果启用pager
,则应将其配置为不干扰某些命令:
[pager]
pager = LESS='FSRX' less
ignore = version, help, update, serve, record
我强烈建议(并经常使用)中间扩展:
record
:让您以交互方式选择要提交的文件块-非常适合您在一组更改的中间,并且最终修复了应具有自己提交的内容。extdiff
:配置外部差异工具(例如,meld)share
:有多个克隆使用相同的回购历史记录我不会没有高级扩展:
mq
:管理一堆补丁。非常强大,可以在树的顶部分层放置补丁。notify
:更改存储库时发送电子邮件通知。rebase
:在新的父修订版之上重新应用本地更改。largefiles
:在hg存储区之外使用大型二进制文件以上所有内容均与Mercurial捆绑在一起,并且经过了稳定的测试。我强烈推荐所有这些。
非核心扩展值得研究:
shelve
:有选择地搁置更改(按块的粒度)并恢复它们。acl
:有选择地允许访问存储库树的不同部分被取代的扩展并迁移到核心(来自@ durin42的信息):
forest
已被subrepo
v1.3中引入的支持所取代bookmarks
处于核心地位,并且始终处于启用状态transplant
被graft
核心命令取代histedit
自v2.3起,它处于核心地位,但默认情况下处于禁用状态inotify
不建议使用,因为显然是由于竞赛条件造成的错误fetch
,graphlog
和record
。使用hg extensions help
graphlog
而且mq
特别好吃
hg rebase
可能有一些重叠。git
用户喜欢重新设定基准。可以替代mq
许多用例。git
分支机构。-g
log命令(并传入传出IIRC)。
-g
log的标志是启用git style diffs,与完全不同graphlog
。
-G
为了使图形日志脱离图形,但您仍然需要暂时启用扩展。
尚未提及:mercurial_keyring
https://www.mercurial-scm.org/wiki/KeyringExtension
“密钥环扩展使用密钥环库的服务来使用系统特定的密码数据库(Gnome密钥环,KDE KWallet,OSXKeyChain,Win32和命令行专用解决方案)安全地保存身份验证密码(HTTP / HTTPS和SMTP)。”
我使用ssh来访问我在GitHub和Bitbucket上的存储库,并且我的密钥短语保存在密钥链中。此扩展使Mercurial可以在需要时获取它。
我也需要:hg-git
Mercurial插件,可让您使用hg作为客户端拉出和推送git repos。一直使用它。
我的清单:
graphlog。我用它比汞日志更多。(希望它可能仅限于分支机构)
清除。删除所有不在Mercurial中的文件。我用它代替make clean或使其更清洁。
较少使用,但很好:
我一直尝试使用历史记录编辑工具,但一直遇到限制。我要他们工作。
顺便提一下,当心:hgk和fetch是“不受欢迎的”:https ://www.mercurial-scm.org/wiki/UnlovedFeatures 。但是,SubRepos并不是不受欢迎的,但是是不得已的功能,因此我使用subrepos。