什么是最好的和必须的汞/汞附加扩展?

我最近一直在和hg / mercurial混在一起,就是和Fogcreek的窑一起,我正试图弄清楚什么是必须的扩展。 它有点棘手的筛选他们的扩展名单,因为我不兴趣testing任何错误或不切实际的扩展,即使他们的描述听起来真棒。

那么,你使用哪个hg扩展?

请参阅使用扩展

我自己的命中列表:

简单的你必须拥有:

  1. color :将diffstatus等命令的输出color ,这使得评估更容易。
  2. pager :一次浏览长时间输出一页。
  3. fetch :一步拉fetch ,更新和合并另一个回购。
  4. graphlog :在您的shell中显示修订图,对于查看日志历史logging中的分支非常有用。
  5. hgk :用graphics界面浏览版本库(另请参阅TortoiseHg和Murky)

如果启用pager ,则应将其configuration为不干扰某些命令:

 [pager] pager = LESS='FSRX' less ignore = version, help, update, serve, record 

我强烈build议(和经常使用)的中间分机:

  1. record :让您以交互方式select要提交的文件块 – 适合于当您处于一组更改中时,最终修复应该有自己的提交的内容。
  2. extdiff :configuration外部diff工具(如extdiff
  3. share :有多个克隆使用相同的回购历史logging

高级扩展我不会没有:

  1. mq :pipe理一堆补丁。 非常强大,允许在树的顶部分层。
  2. notify :回购更改时发送电子邮件通知。
  3. 重新rebase :在新的父级修订版本上重新应用本地更改。
  4. 大文件:使用hg存储之外的大型二进制文件

以上所有都与Mercurial捆绑在一起,并且稳定且经过了充分的testing。 我强烈build议所有这些。

非核心扩展值得研究:

  1. shelve :有select地搁置变化(以块的粒度)并恢复它们。
  2. acl :有select地允许访问存储库树的不同部分

取代扩展并迁移到核心(来自@ durin42的信息):

  • forest被v1.3引入的subrepo支持所取代
  • bookmarks处于核心并始终启用
  • transplantgraft ,核心命令所取代
  • histedit在v2.3中处于核心,但默认情况下是禁用的
  • 不build议使用inotify ,因为显然有一个由于竞争条件造成的bug

graphlogmq特别好吃。

  1. 转换:与其他系统进行转换
  2. Mq(Mercurial Queues):将变化作为一堆补丁处理
  3. 森林:让您一次承诺并更新许多嵌套的Mercurial存储库
  4. 共享:在使用类似的存储库时节省时间和磁盘空间
  5. Hgk:给出历史的graphics视图
  6. Graphlog:我总是input'hg glog'而不是'hg log'。 一个ascii艺术的历史观
  7. 移植:当你只想合并来自另一个分支的几个变更集时很有用。 较新的hg rebase可能有一些重叠。
  8. Rebase:在分支之上处理变化的一种不同方式。 git用户喜欢rebase。 可以用mq代替许多用例。
  9. 搁置(Shelve):如果您需要在其他方面进行一些其他工作,则可以隐藏工作副本的更改。
  10. 书签:命名特定分支上的最新提交。 类似于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

http://hg-git.github.com/

Mercurial插件让你拉和推git回购使用hg作为客户端。 一直使用它。

如果你正在使用像Bitbucket这样的慢速主机,那么进展是非常重要的。 否则, hg push看起来像挂了:\

我的列表:

  1. graphlog。 我使用它比HG日志多得多。 (希望能限制到分支机构)

  2. 清除。 删除不在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。