最好的和必备的 hg / Mercurial 扩展是什么?

发布于 2024-08-14 04:27:33 字数 257 浏览 5 评论 0原文

我最近一直在涉足 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

两仪 2024-08-21 04:27:33

我自己的热门列表:

您必须拥有的简单列表:

  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

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

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

我离不开的高级扩展:

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

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

值得研究的非核心扩展:

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

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

  • forest已被subrepo<取代v1.3 中引入的 /code> 支持
  • bookmarks 位于核心并始终启用
  • transplantgraft 取代,这是一个核心命令
  • histedit 自 v2.3 起位于核心,但默认禁用
  • inotify 不推荐,因为显然存在由于竞争条件而导致的错误

My own hit list:

The simple ones you must have:

  1. color: colorize output from commands like diff and status, which makes it easier to assess.
  2. pager: browse long output a page at a time.
  3. fetch: pull, update and merge from another repo in one step.
  4. graphlog: display revision graphs in your shell, incredibly useful for looking at the branches in your log history.
  5. 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:

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

The intermediate extensions I highly recommend (and use frequently):

  1. 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.
  2. extdiff: configure an external diff tool (such as meld)
  3. share: have multiple clones use the same repo history

The Advanced extensions I would not be without:

  1. mq: manage a stack of patches. Very powerful, allows layering of patches on top of the tree.
  2. notify: send email notifications when a repo is changed.
  3. rebase: reapply local changes on top of a new parent revision.
  4. largefiles: work with large binary files outside the hg store

All the above are bundled with Mercurial, and are stable and well-tested. I highly recommend all of them.

Non-core extensions worth investigating:

  1. shelve: selectively put aside changes (at the granularity of hunks) and restore them.
  2. acl: selectively allow access to different parts of the repository tree

Superseded extensions and migrated to core (info from @durin42):

  • forest was been superseded by the subrepo support introduced in v1.3
  • bookmarks is in core and always enabled
  • transplant is superseded by graft, a core command
  • histedit is in core as of v2.3, but is disabled by default
  • inotify is not recommended, as there is apparently a bug due to a race condition
绻影浮沉 2024-08-21 04:27:33

graphlogmq 特别美味。

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

graphlog and mq are especially tasty.

  1. Convert: convert to and from other systems
  2. Mq (Mercurial Queues): deal with changes as a stack of patches
  3. Forest: lets you commit to and update many nested Mercurial repositories at once
  4. Share: to save time and disk space when working with similar repositories
  5. Hgk: gives a graphical view of history
  6. Graphlog: I always type 'hg glog' not 'hg log'. An ascii art view of history
  7. Transplant: Useful when you only want to merge a few changesets from another branch. The newer hg rebase may have some overlap.
  8. Rebase: A different way to deal with changes as a set of changesets on top of a branch. git users like to rebase. May replace mq for many use cases.
  9. Shelve: A place to stash the working copy's changes if you have to work on something else for a while.
  10. Bookmarks: Name the newest commit on a particular branch. Similar to git branches.
执手闯天涯 2024-08-21 04:27:33

尚未提及: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 :\

小女人ら 2024-08-21 04:27:33

我的列表:

  1. graphlog。我用它比 hg log 多得多。 (希望它可以限制为分支)

  2. 清除。删除所有不在 Mercurial 中的文件。 的更干净版本

较少使用,但很好:

  • children(让你说“hg kids -r XXX”)
  • 类的东西

parentrevspec:让你说类似“foo~2 = foo^1^1 = foo^^ = foo的第一个父级的第一个父级”之 继续尝试使用历史编辑工具,但不断遇到限制。我希望它们能够工作。

  • 折叠
  • histedit
  • 我也考虑重新设置历史编辑工具

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

My list:

  1. graphlog. I use it much more than hg log. (wish it could restrict to branches)

  2. purge. remove all files not in Mercurial. I use this instead of or as a cleaner version of make clean.

Less used, but nice:

  • children (lets you say "hg children -r XXX")
  • parentrevspec: lets you say stuff like "foo~2 = foo^1^1 = foo^^ = first parent of first parent of foo"

I keep trying to use the history editing tools, but keep running into limitations. I want them to work.

  • collapse
  • histedit
  • I consider rebase a history editing tol as well

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文