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

我最近一直在涉猎 hg/mercurial,也就是说与 Fogcreek 的窑结合在一起,我试图弄清楚必备的扩展是什么。筛选他们的扩展列表有点棘手,因为我对测试任何 bug 或不切实际的扩展不感兴趣,即使他们的描述听起来很棒。

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

参见 使用扩展

14041 次浏览

graphlogmq特别好吃。

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

我自己的暗杀名单:

你必须具备的简单条件:

  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: 配置一个外部差异工具(如 meld)
  3. 有多个克隆使用相同的回购历史

我不会没有高级扩展:

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

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

值得调查的非核心扩展:

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

取代扩展并迁移到 core (info from@durin42) :

  • 在 v1.3中引入的 subrepo支持取代了 forest
  • bookmarks位于核心并始终启用
  • transplant被核心命令 graft所取代
  • 从2.3版本开始,histedit就在内核中,但默认情况下禁用了它
  • 不推荐使用 inotify,因为由于竞态条件,显然存在 bug

如果你使用的是像 Bitbucket 这样速度慢的主机,进步是必不可少的,否则 hg push看起来就像是挂起来的:

我的清单:

  1. 我使用它比 hg log 多得多。(希望它能限制在分支)

  2. 清除。删除不在 Mercurial 中的所有文件。我使用这个代替或作为一个清洁版本的使清洁。

少用,但很好:

  • 儿童(让你说“ hg children-r XXX”)
  • Parentrevspec: 允许你说“ foo ~ 2 = foo ^ 1 ^ 1 = foo ^ ^ = foo 的第一个父母的第一个父母”

我一直尝试使用历史编辑工具,但总是遇到限制。

  • 崩溃
  • 他说
  • 我还考虑使用 rebase 作为历史编辑工具

顺便说一句,当心: hgk 和 fetch 是“不受欢迎的”: https://www.mercurial-scm.org/wiki/UnlovedFeatures。不过话说回来,SubRepos 不是不受欢迎,而是最后一招,我用 subRepos。

还没有提到: mercurial _ keyring

Https://www.mercurial-scm.org/wiki/keyringextension

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

我使用 ssh 访问我在 GitHub 和 Bitbucket 上的回购协议,我的关键词保存在密钥链中。这个扩展允许 Mercurial 在任何需要的时候获取它。

我也需要: hg-git

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

Mercurial 插件可以让你使用 hg 作为客户端拉动和推动 git 回购协议。