【问题标题】:What are the best and must-have hg / mercurial extensions? [closed]什么是最好的和必备的 hg / mercurial 扩展? [关闭]
【发布时间】:2010-12-24 13:15:12
【问题描述】:

我最近一直在涉足 hg / mercurial,即与 Fogcreek's Kiln 一起使用,我正在尝试找出必备的扩展是什么。筛选他们的扩展列表有点棘手,因为我对测试任何有问题或不切实际的扩展不感兴趣,即使他们的描述听起来很棒。

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

Using Extensions

【问题讨论】:

  • 可能不是“deps”——我的初始测试让它看起来太有问题/太新了,无法使用
  • 我还要添加task extension 来管理“编码任务”和prompt extension 以在shell 提示符上显示存储库信息。提示可以使用任务扩展。它们都没有随 hg 一起发货。

标签: mercurial


【解决方案1】:

我的清单:

  1. 图形日志。我使用它比 hg log 多得多。 (希望它可以限制在分支机构)

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

使用较少,但很好:

  • 孩子(让你说“hg children -r XXX”)
  • parentrevspec:让您说出诸如“foo~2 = foo^1^1 = foo^^ = foo 的第一个父项的第一个父项”之类的内容

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

  • 折叠
  • 历史编辑
  • 我也考虑使用 rebase 历史编辑工具

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      尚未提及:mercurial_keyring

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

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

      我使用 ssh 访问我在 GitHub 和 Bitbucket 上的存储库,并且我的密钥短语保存在钥匙串中。这个扩展让 Mercurial 可以在需要时获取它。

      我也需要:hg-git

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

      Mercurial 插件让您可以使用 hg 作为客户端来拉取和推送 git repos。一直使用它。

      【讨论】:

        【解决方案4】:

        我自己的命中列表:

        你必须拥有的简单的:

        1. color:对 diffstatus 等命令的输出进行着色,以便于评估。
        2. pager:一次浏览长输出一页。
        3. fetch:从另一个仓库拉取、更新和合并一步。
        4. graphlog:在您的 shell 中显示修订图,对于查看日志历史记录中的分支非常有用。
        5. hgk:使用图形界面浏览存储库(另见 TortoiseHg 和 Murky)

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

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

        我强烈推荐(并且经常使用)的中间扩展:

        1. record:让您以交互方式选择要提交的大块文件 - 非常适合当您正在进行一组更改并最终修复应该有自己提交的内容时。
        2. extdiff:配置外部diff工具(如meld)
        3. share: 有多个克隆使用相同的回购历史记录

        我不会没有的高级扩展:

        1. mq:管理一堆补丁。非常强大,允许在树的顶部分层贴片。
        2. notify:当仓库发生变化时发送电子邮件通知。
        3. rebase:在新的父版本之上重新应用本地更改。
        4. largefiles: 处理 hg 存储之外的大型二进制文件

        以上所有内容都与 Mercurial 捆绑在一起,并且稳定且经过良好测试。我强烈推荐所有这些。

        值得研究的非核心扩展:

        1. shelve:有选择地搁置更改(以大块为粒度)并恢复它们。
        2. acl:选择性地允许访问存储库树的不同部分

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

        • forest 已被 v1.3 中引入的 subrepo 支持所取代
        • bookmarks 位于核心并始终启用
        • transplant 被核心命令 graft 取代
        • histedit 从 v2.3 开始在核心中,但默认禁用
        • 不推荐inotify,因为竞争条件显然存在错误

        【讨论】:

        • Subrepo vs. Forest 上的任何其他 cmets?我不确定它们中的任何一个实际上是否有用/可用——这可能意味着我只是“做错了”。我对 SVN 的“外部”的强大改进特别感兴趣
        • 颜色在 Windows 上不起作用 (mercurial.selenic.com/bts/issue1579)
        • @Jerome 颜色扩展在 Cygwin 中似乎可以正常工作。
        • 在里面创建一个awesome list! :) 有one for git。我不怎么用 mercurial,但看起来 mercurial 也有很多好东西!
        • 您列表中的这些标记为已弃用fetchgraphlogrecord。看到这个使用hg extensions help
        【解决方案5】:

        graphlogmq特别好吃。

        1. 转换:与其他系统相互转换
        2. Mq(Mercurial 队列):将更改作为补丁堆栈处理
        3. Forest:让您一次提交并更新许多嵌套的 Mercurial 存储库
        4. 共享:在使用类似存储库时节省时间和磁盘空间
        5. Hgk:提供历史的图形视图
        6. Graphlog:我总是输入“hg glog”而不是“hg log”。历史的 ascii 艺术观
        7. 移植:当您只想合并来自另一个分支的几个变更集时很有用。较新的 hg rebase 可能有一些重叠。
        8. 变基:将更改作为分支顶部的一组更改集来处理的另一种方法。 git 用户喜欢变基。可以在许多用例中替换 mq
        9. 搁置:存放工作副本更改的地方,如果您需要在一段时间内处理其他内容。
        10. 书签:命名特定分支上的最新提交。类似于git 分支。

        【讨论】:

        • graphlog 现在是内置的,并且始终使用-g 启用日志命令(并传入传出的 IIRC)。
        • Ry4an:提示中的“现在”是什么意思?不在 1.4.1 AFAICT 中。
        • log的-g标志是开启git风格的diffs,和graphlog完全不同。
        • 我的错误。从图形中获取图形日志是 -G,但您现在仍需要启用扩展。
        • 也可以加progress分机
        猜你喜欢
        • 2011-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-24
        • 2010-09-21
        • 1970-01-01
        • 1970-01-01
        • 2010-10-04
        相关资源
        最近更新 更多