1. Ludovic Chabant
  2. allpaths


allpaths /

Filename Size Date modified Message
75 B
376 B
18.1 KB
386 B
2.9 KB
2.9 KB
1.1 KB

Mercurial All Paths extension

Push or pull to many (or all) paths at once.

1   Usage


hg pushall

pushes to all paths defined for the repository (all paths returned by hg paths - usually defined in .hg/hgrc, but Path Pattern paths are also handled).

There is also corresponding:

hg pullall

Instead of using standard paths, you can define and use groups:

hg pushall -g publish

pushes to all paths specified in the [publish] config section, which should look like this:

bitbucket = ssh://hg@bitbucket.org/ludovicchabant/piecrust
github = git+ssh://git@github.com:ludovicchabant/PieCrust.git
other = ssh://my@own/server
local = /some/other/place

All standard push and pull options can be used:

hg pushall -b branch


hg pullall --force


Finally, there are:

hg incomingall


hg outgoingall

which simply iterate over all paths.

2   Installation

2.1   From PyPi

If you have working pip or easy_install:

pip install --user mercurial_all_paths

or maybe:

sudo pip install mercurial_all_paths

Then activate by:

mercurial_all_paths =

To upgrade, repeat the same command with --upgrade option, for example:

pip install --user --upgrade mercurial_all_paths

2.2   From source

Clone this repository:

cd ~/sources
hg clone https://bitbucket.org/Mekk/mercurial-all_paths/


pip install --user -e mercurial-all_paths

and activate as above, or just activate by full path:

mercurial_path_pattern = ~/sources/mercurial-path_pattern/mercurial_path_pattern.py

To upgrade, pull and update.

4   Development

Main extension repository, maintained by Ludovic Chabant, is available at:


Fork by Marcin Kasperski, which is usually in sync, but at times may contain some not-yet merged changes, is available at:


5   Additional notes

Information about this extension is also available on Mercurial Wiki: http://mercurial.selenic.com/wiki/AllPathsExtension