什么是最好且必须拥有的汞/汞离子延伸剂?[关闭]


74

我最近一直在尝试hg / mercurial,即与Fogcreek的窑一起使用,而我正在尝试弄清楚什么是必须的扩展。在扩展名列表中进行筛选有些棘手,因为即使它们的描述听起来很棒,我也不希望测试任何有缺陷或不切实际的扩展名。

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

请参阅使用扩展


可能不是“DEPS” -我最初的测试使得它看起来太越野车/新使用
JJ罗勒

在列表中,我还将添加任务扩展名以管理“编码任务”,并添加提示扩展名以在shell提示上显示存储库信息。提示可以使用任务扩展。它们都不与hg一起提供。
Paolo

Answers:


99

我自己的命中清单:

您必须具备的简单方法:

  1. color:对诸如diff和的命令的输出着色status,这使得评估更加容易。
  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. share:有多个克隆使用相同的回购历史记录

我不会没有高级扩展:

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

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

非核心扩展值得研究:

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

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

  • forest已被subrepov1.3中引入的支持所取代
  • bookmarks 处于核心地位,并且始终处于启用状态
  • transplantgraft核心命令取代
  • histedit 自v2.3起,它处于核心地位,但默认情况下处于禁用状态
  • inotify 不建议使用,因为显然是由于竞赛条件造成的错误

关于Subrepo与Forest的其他评论吗?我不能肯定它们中的任何一个实际上都是有用的/可用的-这可能意味着我只是在“做错了”。我特别感兴趣的一个强大的改进SVN的“的extern”
JJ罗勒

颜色不工作在Windows上(mercurial.selenic.com/bts/issue1579
杰罗姆

1
@Jerome颜色扩展似乎在Cygwin中工作正常。
gavinb

1
在其中创建一个很棒的列表!:) git一个。我不太用汞,但看起来也有许多对汞有用的东西!
GabLeRoux

2
这些从列表中被标记为已过时fetchgraphlogrecord。使用hg extensions help
GabLeRoux

9

graphlog而且mq特别好吃

  1. 转换:与其他系统之间进行转换
  2. Mq(Mercurial队列):作为一堆补丁处理更改
  3. 森林:让您一次提交并更新许多嵌套的Mercurial存储库
  4. 共享:在使用类似存储库时节省时间和磁盘空间
  5. HGK:以图形方式显示历史记录
  6. Graphlog:我总是输入'hg glog'而不是'hg log'。历史的阿西艺术观
  7. 移植:当您只想合并另一个分支的几个变更集时很有用。较新的hg rebase可能有一些重叠。
  8. 变基:以一种不同的方式将更改作为分支顶部的一组变更集进行处理。git用户喜欢重新设定基准。可以替代mq许多用例。
  9. 搁置:如果您需要一段时间进行其他工作,则可以存放工作副本的更改。
  10. 书签:命名特定分支上的最新提交。类似于git分支机构。

graphlog现在是内置的,并且始终启用-glog命令(并传入传出IIRC)。
Ry4an Brase 09年

Ry4an:提示中的“现在”是什么意思?不在1.4.1 AFAICT中。
卡尔·梅耶

1
-glog的标志是启用git style diffs,与完全不同graphlog
jamessan

1
我的错 这是-G为了使图形日志脱离图形,但您仍然需要暂时启用扩展。
Ry4an Brase 2012年

您还可以添加progress扩展名

9

尚未提及:mercurial_keyring

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

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

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

我也需要:hg-git

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

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


7

如果您正在使用Bitbucket之类的速度较慢的主机,则进度至关重要。否则hg push看起来好像挂了:\


1

我的清单:

  1. graphlog。我用它比汞日志更多。(希望它可能仅限于分支机构)

  2. 清除。删除所有不在Mercurial中的文件。我用它代替make clean或使其更清洁。

较少使用,但很好:

  • 孩子们(让您说“ hg children -r XXX”)
  • parentrevspec:让您说“ foo〜2 = foo ^ 1 ^ 1 = foo ^^ = foo的第一个父母的第一个父母”这样的内容

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

  • 坍方
  • 历史编辑
  • 我也考虑对历史编辑工具进行重新设置

顺便提一下,当心:hgk和fetch是“不受欢迎的”:https ://www.mercurial-scm.org/wiki/UnlovedFeatures 。但是,SubRepos并不是不受欢迎的,但是是不得已的功能,因此我使用subrepos。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.