什么是最好的和必须的hg / mercurial扩展?

时间:2009-12-08 18:47:50

标签: mercurial

我最近一直在与hg / mercurial合作,即与Fogcreek's Kiln合作,我正在试图找出必须延伸的东西。它通过扩展列表进行了一些小巧的筛选,因为我对测试任何错误或不切实际的扩展都不感兴趣,即使它们的描述听起来很棒。

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

请参阅Using Extensions

5 个答案:

答案 0 :(得分:98)

我自己的点击列表:

你必须拥有的简单:

  1. color:对来自diffstatus等命令的输出进行着色,这样可以更轻松地进行评估。
  2. pager:一次浏览长输出页面。
  3. fetch:从一个步骤拉取,更新和合并。
  4. graphlog:在您的shell中显示修订图,对于查看日志历史记录中的分支非常有用。
  5. hgk:使用图形界面浏览存储库(另请参阅TortoiseHg和Murky)
  6. 如果启用pager,则应将其配置为不干扰某些命令:

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

    我强烈建议(并经常使用)中间扩展:

    1. record:让您以交互方式选择要提交的文件数量 - 当您处于一组更改的中间时最适合,并最终修复应该有自己提交的内容。
    2. extdiff:配置外部差异工具(例如meld)
    3. share:让多个克隆使用相同的回购历史记录
    4. 高级扩展我不会没有:

      1. mq:管理一堆补丁。非常强大,允许在树顶部分层补丁。
      2. notify:在更改回购时发送电子邮件通知。
      3. rebase:在新的父版本之上重新应用本地更改。
      4. largefiles:使用hg商店外的大型二进制文件
      5. 以上所有内容都与Mercurial捆绑在一起,并且稳定且经过充分测试。我强烈推荐所有这些。

        值得调查的非核心扩展:

        1. shelve:有选择地放置更改(以帅哥的粒度)并恢复它们。
        2. acl:有选择地允许访问存储库树的不同部分
        3. 取代扩展并迁移到核心(来自@ durin42的信息):

          • forest已被v1.3
          • 中引入的subrepo支持所取代
          • bookmarks位于核心并始终启用
          • transplantgraft取代,这是一个核心命令
          • histedit在v2.3中处于核心状态,但默认情况下已禁用
          • 不建议使用
          • inotify,因为竞争状况显然存在错误

答案 1 :(得分:9)

graphlogmq特别好吃。

  1. 转换:与其他系统进行转换
  2. Mq(Mercurial Queues):将更改作为一堆补丁来处理
  3. Forest:允许您一次提交并更新许多嵌套的Mercurial存储库
  4. 分享:使用类似的存储库时节省时间和磁盘空间
  5. Hgk:提供历史的图形视图
  6. Graphlog:我总是键入'hg glog'而不是'hg log'。 ascii艺术观的历史
  7. 移植:当您只想从另一个分支合并一些变更集时很有用。较新的hg rebase可能会有一些重叠。
  8. Rebase:一种不同的方式,可以将更改作为一组分支上的变更集处理。 git用户喜欢变基。对于许多用例,可以替换mq
  9. Shelve:如果你不得不在其他方面工作一段时间,那就是隐藏工作副本变化的地方。
  10. 书签:命名特定分支上的最新提交。与git分支类似。

答案 2 :(得分:9)

尚未提及:mercurial_keyring

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

“密钥环扩展使用密钥环库的服务,使用系统特定的密码数据库(Gnome Keyring,KDE KWallet,OSXKeyChain,Win32和命令行的专用解决方案)安全地保存身份验证密码(HTTP / HTTPS和SMTP)。”

我使用ssh访问GitHub和Bitbucket上的repos,我的密钥短语保存在keychain中。此扩展允许Mercurial在需要时获取它。

我也需要:hg-git

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

Mercurial插件让你使用hg作为客户端拉动并推送git repos。一直使用它。

答案 3 :(得分:7)

如果您正在使用像Bitbucket这样缓慢的主机,progress是必不可少的。否则hg push看起来像挂起了:\

答案 4 :(得分:1)

我的清单:

  1. graphlog。我使用它远远超过hg log。 (希望它可以限制为分支机构)

  2. 净化。删除不在Mercurial中的所有文件。我使用它代替make或作为make clean的更干净版本。

  3. 少用,但很好:

    • 孩子们(让你说“hg children -r XXX”)
    • parentrevspec:让你说“foo~2 = foo ^ 1 ^ 1 = foo ^^ = foo的第一个父母的第一个父母”这样的东西

    我一直在尝试使用历史编辑工具,但仍然遇到限制。我希望让他们工作。

    • 崩溃
    • histedit
    • 我认为rebase也是一个编辑历史记录

    顺便提一下,请注意:hgk和fetch是“不受欢迎的”:https://www.mercurial-scm.org/wiki/UnlovedFeatures。但是,SubRepos不是不受欢迎的,而是最后的功能,我使用subrepos。