跳转到主要内容

Mercurial All Dirs 扩展

项目描述

在许多存储库中执行相同的Mercurial命令。

1 示例

假设您有Mercurial存储库在~/src/libs/acme~/src/libs/net/aaa~/src/libs/net/bbb中。那么

cd ~/src/libs
hg alldirs status
# … shows status in all three repos
hg alldirs heads -t
# … and heads
hg alldirs log -l 2
# … and recent commit

甚至

hg alldirs commit -m "Documentation updates"
# Commit in all three repos
hg alldirs push bb
# … and pushes them all

相对文件名是相对于给定的存储库根目录解析的(在实际上执行命令之前,chdirs会切换到每个存储库)

hg alldirs commit -m "Version update" setup.py src/version.py

请注意,alldirs不需要任何类型的父存储库

如果您已经位于某个存储库内部,则命令将在此存储库上执行,因此alld并不重要

cd ~/src/libs/net/aaa
hg status
hg alld status
# … Both do the same

2 故障处理

如果给定的命令未知(hg alldirs badcommand),或者获得了无效的选项(hg alldirs log -s),则错误会立即报告,并停止处理。

如果给定命令在执行过程中失败(例如 hg alldirs pull nosuchalias),则 alldirs 将在所有仓库中执行该命令(不会停止)。完成后,它将总结出命令失败的仓库列表。

在这两种情况下,整个命令都返回表示错误的退出状态。

3 安装

3.1 Linux/Unix(来自PyPI)

如果您有正常工作的 pipeasy_install

pip install --user mercurial_all_dirs

或者可能

sudo pip install mercurial_all_dirs

(或者用 easy_install 代替 pip)。然后通过以下方式激活

[extensions]
mercurial_all_dirs =

要升级,请使用 --upgrade 选项重复相同的命令,例如

pip install --user --upgrade mercurial_all_dirs

3.2 Linux/Unix(来自源代码)

如果您没有 pip,或者希望更密切地跟踪开发

  • 克隆这两个仓库,并将它们放入同一目录中,例如 mercurial_extension_utils,例如

    cd ~/sources
    hg clone https://foss.heptapod.net/mercurial/mercurial-extension_utils/
    hg clone https://foss.heptapod.net/mercurial/mercurial-all_dirs/
  • 更新到最新标签

  • 通过以下方式激活

    [extensions]
    mercurial_all_dirs = ~/sources/mercurial-all_dirs/mercurial_all_dirs.py

要升级,请拉取并更新。

有关此类安装的更详细描述,请参阅 mercurial_extension_utils 文档。

3.3 Windows

如果您已安装任何 Python,您可以使用 pip 进行安装

pip install mercurial_all_dirs

不过,由于 Mercurial(无论是从 TortoiseHg 取得,还是自己的包)使用它自己的捆绑 Python,您必须通过指定路径来激活

[extensions]
mercurial_all_dirs = C:/Python27/Lib/site-packages/mercurial_all_dirs.py
;; Or wherever pip installed it

要升级到新版本

pip --upgrade mercurial_all_dirs

如果您没有 Python,克隆仓库

cd c:\hgplugins
hg clone https://foss.heptapod.net/mercurial/mercurial-extension_utils/
hg clone https://foss.heptapod.net/mercurial/mercurial-all_dirs/

更新到标记版本,并通过路径激活

[extensions]
mercurial_all_dirs = C:/hgplugins/mercurial-all_dirs/mercurial_all_dirs.py
;; Or wherever you cloned

有关 Windows 安装的更多详细信息,请参阅 mercurial_extension_utils 文档。

5 历史

请参阅 HISTORY.rst

6 存储库、错误报告、增强建议

开发在 HeptaPod 上进行跟踪,请参阅 https://foss.heptapod.net/mercurial/mercurial-all_dirs/

在那里使用问题跟踪器进行错误报告和增强建议。

感谢 OctobusClever Cloud 提供此托管服务。

7 测试

可以通过以下方式运行测试

cram -v tests/*.t

(针对当前 Mercurial)或

tox

(针对各种版本)。

8 附加说明

有关此扩展的信息也可在 Mercurial Wiki 上找到: http://mercurial.selenic.com/wiki/AllDirsExtension

请参阅我写的其他 Mercurial 扩展:其他 Mercurial 扩展

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

mercurial_all_dirs-1.1.4.tar.gz (13.0 kB 查看哈希值)

上传时间

由以下组织支持