最好的和必备的 hg / Mercurial 扩展是什么?
我最近一直在涉足 hg / Mercurial,即与 Fogcreek's Kiln 结合使用,并且我正在尝试找出必须具备的扩展是什么。筛选他们的扩展列表有点棘手,因为我对测试任何有缺陷或不切实际的扩展不感兴趣,即使他们的描述听起来很棒。
那么,您使用哪些 hg 扩展?
请参阅使用扩展
I've been dabbling with hg / mercurial lately, namely in conjunction with Fogcreek's Kiln, and I'm trying to figure out what the must-have extensions are. Its a little tricky sifting through their extension list because I'm not interested in testing any buggy or impractical extensions, even if their description sounds awesome.
So, which hg extensions do you use?
See Using Extensions
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我自己的热门列表:
您必须拥有的简单列表:
color
:对diff
和status
等命令的输出进行着色,这使得评估更容易。pager
:一次浏览长输出一页。fetch
:一步从另一个存储库中提取、更新和合并。graphlog
:在 shell 中显示修订图,对于查看日志历史记录中的分支非常有用。hgk
:使用图形界面浏览存储库(另请参阅 TortoiseHg 和 Murky)如果启用
pager
,则应将其配置为不干扰某些命令:中间扩展 I强烈推荐(并经常使用):
record
:让您以交互方式选择要提交的大量文件 - 非常适合当您正在进行一组更改并且最终修复了应该具有的内容时它自己的承诺。extdiff
:配置外部 diff 工具(例如 meld)share
:让多个克隆使用相同的存储库历史记录我离不开的高级扩展:
mq< /code>:管理补丁堆栈。非常强大,允许在树顶部分层补丁。
notify
:当存储库更改时发送电子邮件通知。rebase
:在新的父修订版之上重新应用本地更改。largefiles
:处理 hg 存储之外的大型二进制文件以上所有内容都与 Mercurial 捆绑在一起,并且稳定且经过良好测试。我强烈推荐他们所有人。
值得研究的非核心扩展:
shelve
:有选择地搁置更改(以大块的粒度)并恢复它们。acl
:有选择地允许访问存储库树的不同部分被取代的扩展并迁移到核心(来自@durin42的信息):
forest
已被subrepo<取代v1.3 中引入的 /code> 支持
bookmarks
位于核心并始终启用transplant
被graft
取代,这是一个核心命令histedit
自 v2.3 起位于核心,但默认禁用inotify
不推荐,因为显然存在由于竞争条件而导致的错误My own hit list:
The simple ones you must have:
color
: colorize output from commands likediff
andstatus
, which makes it easier to assess.pager
: browse long output a page at a time.fetch
: pull, update and merge from another repo in one step.graphlog
: display revision graphs in your shell, incredibly useful for looking at the branches in your log history.hgk
: browse the repository with a graphical interface (see also TortoiseHg and Murky)If you enable
pager
, you should configure it to not interfere with certain commands:The intermediate extensions I highly recommend (and use frequently):
record
: lets you interactively select hunks of files to commit - perfect for when you are in the middle of one set of changes, and you end up fixing something that should have its own commit.extdiff
: configure an external diff tool (such as meld)share
: have multiple clones use the same repo historyThe Advanced extensions I would not be without:
mq
: manage a stack of patches. Very powerful, allows layering of patches on top of the tree.notify
: send email notifications when a repo is changed.rebase
: reapply local changes on top of a new parent revision.largefiles
: work with large binary files outside the hg storeAll the above are bundled with Mercurial, and are stable and well-tested. I highly recommend all of them.
Non-core extensions worth investigating:
shelve
: selectively put aside changes (at the granularity of hunks) and restore them.acl
: selectively allow access to different parts of the repository treeSuperseded extensions and migrated to core (info from @durin42):
forest
was been superseded by thesubrepo
support introduced in v1.3bookmarks
is in core and always enabledtransplant
is superseded bygraft
, a core commandhistedit
is in core as of v2.3, but is disabled by defaultinotify
is not recommended, as there is apparently a bug due to a race conditiongraphlog
和mq
特别美味。hg rebase
可能有一些重叠。git
用户喜欢变基。在许多用例中可以替换mq
。graphlog
andmq
are especially tasty.hg rebase
may have some overlap.git
users like to rebase. May replacemq
for many use cases.git
branches.尚未提及: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 存储库。一直使用它。
Not yet mentioned: mercurial_keyring
https://www.mercurial-scm.org/wiki/KeyringExtension
"Keyring extension uses services of the keyring library to securely save authentication passwords (HTTP/HTTPS and SMTP) using system specific password database (Gnome Keyring, KDE KWallet, OSXKeyChain, dedicated solutions for Win32 and command line)."
I use ssh to access my repos on GitHub and Bitbucket, and my keyphrase is held in the keychain. This extension lets Mercurial get it whenever needed.
Also required for me: hg-git
http://hg-git.github.com/
Mercurial plugin letting you pull and push git repos using hg as a client. Use it all the time.
如果您使用的是像 Bitbucket 这样速度较慢的主机,进度至关重要。否则
hg Push
看起来像是挂起了:\If you're working with a slowish host like Bitbucket, progress is essential. Otherwise
hg push
looks like it's hung :\我的列表:
graphlog。我用它比 hg log 多得多。 (希望它可以限制为分支)
清除。删除所有不在 Mercurial 中的文件。 的更干净版本
较少使用,但很好:
parentrevspec:让你说类似“foo~2 = foo^1^1 = foo^^ = foo的第一个父级的第一个父级”之 继续尝试使用历史编辑工具,但不断遇到限制。我希望它们能够工作。
顺便说一下,请注意:hgk 和 fetch 是“不受欢迎的”: https://www.mercurial-scm.org/wiki/UnlovedFeatures。但是,SubRepos 并不是不受欢迎,而是最后的手段,我使用 subrepos。
My list:
graphlog. I use it much more than hg log. (wish it could restrict to branches)
purge. remove all files not in Mercurial. I use this instead of or as a cleaner version of make clean.
Less used, but nice:
I keep trying to use the history editing tools, but keep running into limitations. I want them to work.
By the way, beware: hgk and fetch are "unloved": https://www.mercurial-scm.org/wiki/UnlovedFeatures. But then, SubRepos are, not unloved, but a feature of last resort, and I use subrepos.