什么是最好的和必须的汞/汞附加扩展?
我最近一直在和hg / mercurial混在一起,就是和Fogcreek的窑一起,我正试图弄清楚什么是必须的扩展。 它有点棘手的筛选他们的扩展名单,因为我不兴趣testing任何错误或不切实际的扩展,即使他们的描述听起来真棒。
那么,你使用哪个hg扩展?
请参阅使用扩展
我自己的命中列表:
简单的你必须拥有:
-
color
:将diff
和status
等命令的输出color
,这使得评估更容易。 -
pager
:一次浏览长时间输出一页。 -
fetch
:一步拉fetch
,更新和合并另一个回购。 -
graphlog
:在您的shell中显示修订图,对于查看日志历史logging中的分支非常有用。 -
hgk
:用graphics界面浏览版本库(另请参阅TortoiseHg和Murky)
如果启用pager
,则应将其configuration为不干扰某些命令:
[pager] pager = LESS='FSRX' less ignore = version, help, update, serve, record
我强烈build议(和经常使用)的中间分机:
-
record
:让您以交互方式select要提交的文件块 – 适合于当您处于一组更改中时,最终修复应该有自己的提交的内容。 -
extdiff
:configuration外部diff工具(如extdiff
) -
share
:有多个克隆使用相同的回购历史logging
高级扩展我不会没有:
-
mq
:pipe理一堆补丁。 非常强大,允许在树的顶部分层。 -
notify
:回购更改时发送电子邮件通知。 - 重新
rebase
:在新的父级修订版本上重新应用本地更改。 - 大文件:使用hg存储之外的大型二进制文件
以上所有都与Mercurial捆绑在一起,并且稳定且经过了充分的testing。 我强烈build议所有这些。
非核心扩展值得研究:
-
shelve
:有select地搁置变化(以块的粒度)并恢复它们。 -
acl
:有select地允许访问存储库树的不同部分
取代扩展并迁移到核心(来自@ durin42的信息):
-
forest
被v1.3引入的subrepo
支持所取代 -
bookmarks
处于核心并始终启用 -
transplant
被graft
,核心命令所取代 -
histedit
在v2.3中处于核心,但默认情况下是禁用的 - 不build议使用
inotify
,因为显然有一个由于竞争条件造成的bug
graphlog
和mq
特别好吃。
- 转换:与其他系统进行转换
- Mq(Mercurial Queues):将变化作为一堆补丁处理
- 森林:让您一次承诺并更新许多嵌套的Mercurial存储库
- 共享:在使用类似的存储库时节省时间和磁盘空间
- Hgk:给出历史的graphics视图
- Graphlog:我总是input'hg glog'而不是'hg log'。 一个ascii艺术的历史观
- 移植:当你只想合并来自另一个分支的几个变更集时很有用。 较新的
hg rebase
可能有一些重叠。 - Rebase:在分支之上处理变化的一种不同方式。
git
用户喜欢rebase。 可以用mq
代替许多用例。 - 搁置(Shelve):如果您需要在其他方面进行一些其他工作,则可以隐藏工作副本的更改。
- 书签:命名特定分支上的最新提交。 类似于
git
分支。
还没有提到:mercurial_keyring
https://www.mercurial-scm.org/wiki/KeyringExtension
“Keyring扩展使用密钥环库的服务,使用系统特定的密码数据库(Gnome Keyring,KDE KWallet,OSXKeyChain,Win32专用解决scheme和命令行)安全地保存authentication密码(HTTP / HTTPS和SMTP)。
我使用ssh来访问我在GitHub和Bitbucket上的回购,而我的关键字则保存在钥匙串中。 这个扩展让Mercurial在需要的时候得到它。
我也需要:hg-git
Mercurial插件让你拉和推git回购使用hg作为客户端。 一直使用它。
如果你正在使用像Bitbucket这样的慢速主机,那么进展是非常重要的。 否则, hg push
看起来像挂了:\
我的列表:
-
graphlog。 我使用它比HG日志多得多。 (希望能限制到分支机构)
-
清除。 删除不在Mercurial中的所有文件。 我使用这个而不是或者作为make clean的清洁版本。
较less使用,但很好:
- 小孩(让你说“hg children -r XXX”)
- parentrevspec:让你说“foo〜2 = foo ^ 1 ^ 1 = foo ^^ = foo的第一个父母的第一个父母”
我一直试图使用历史编辑工具,但仍然受到限制。 我希望他们工作。
- 坍方
- histedit
- 我考虑重新编辑历史logging
顺便提一句,请注意:hgk和fetch是“不受欢迎的”: https ://www.mercurial-scm.org/wiki/UnlovedFeatures。 但是,SubRepos不是不受欢迎的,而是最后的手段,我使用subrepos。