Package: mercurial_all_paths
Push or pull to many (or all) paths at once.1Basic usage2Defining path groups3Configuration4Installation4.1From PyPi4.2From source5History6Repository, bug reports, enhancements suggestions7Additional notes1Basic usageExecute:hg pushallto push to all remotes which are defined for the repository. Or:hg pullallto pull from all remotes in order.There are also:hg incomingall

hg outgoingallStandard push/pull options can be given, for example:hg pushall -f -B issue-13724

hg pullall -r stable --insecureThose commands iterate over all paths returned byhg paths.  This
usually means iterating over paths defined in[paths]section of.hg/hgrc, butPath Patternpaths are also handled. You can
impact this behaviour by configuration, see below.2Defining path groupsInstead of pushing/pulling everywhere, you can define and usegroups:hg pushall -g publishpushes to all paths from thepublishgroup (wherepublishis
symbolic name of your choosing). Or:hg pullall -g sharedpulls from all paths insharedgroup.There are two ways to define such a group:Define appropriate entry in[all_paths]section (either in.hg/hgrcor in your global~/.hgrc). For example:[all_paths]
group.publish = bitbucket github backup(path aliasesbitbucket,githubandbackupmust
be somehow defined).(Legacy method) Put the section of the same name in.hg/hgrc,
and define all paths there. For example:[publish]
bitbucket = ssh://hg@bitbucket.org/ludovicchabant/piecrust
github = git+ssh://git@github.com:ludovicchabant/PieCrust.git
backup = ssh://ludo@backup.local/piecrustThe syntax is the same as in standard[paths]section, just
name the section with the name of your group.NoteBe careful to avoid conflicts with names which mean something
to Mercurial. For examplewebwould be a bad name as[web]section configureshg servebehaviour, anduiwould be
fatal as[ui]configures various basic Mercurial settings.I recommend the former method as it avoids the risk of conflicts,
makes it easy to define groups globally instead of defining them for
every repository (especially handy if you usePath Pattern), and is
more compact.Groups are also handled forincomingallandoutgoingall, but
long--groupoption must be used (-gis already taken by
standard Mercurial, means reporting in--gitdiff format):hg outgoingall --group publish3ConfigurationThe extension can be configured using[all_paths]section of your
global (~/.hgrc) or repository-level (.hg/hgrc) config file:[all_paths]
prioritize = platon department
ignore = bitbucket production
group.publish = github bitbucket
group.backup = homebackup awsbackupprioritizeimpacts the order, defines paths which are to be
handled first (if present). This is mostly useful forpullallwhere pulling from local fast computer before pulling from remote
server means saving some time and traffic. So:prioritize = platon departmentmeans: if path namedplatonis present, handle it first, then
path nameddepartment, only then follow to the other paths.ignorelists paths which should be ignored, those remotes will
be skipped. So:ignore = bitbucket productionmeans thathg pullallorhg pushallshould not usebitbucketpath (in my case because this is HTTP remote, and I have
also preferablebitssh``configured),and ``productionpath (as
there I prefer to pull and push only on specific demand).Both those settings impact onlydefaultcommands (those run
without-gGROUPoption). In case of groups items are processed
in the order they are specified in group definition.group.«NAME»define group for-g«NAME»as described earlier.4Installation4.1From PyPiIf you have workingpiporeasy_install:pip install --user mercurial_all_pathsor maybe:sudo pip install mercurial_all_pathsThen activate by:[extensions]
mercurial_all_paths =To upgrade, repeat the same command with--upgradeoption, for
example:pip install --user --upgrade mercurial_all_paths4.2From sourceIf you don’t havepip, or wish to follow development more closely:clone both this repository andmercurial_extension_utilsand put
them in the same directory, for example:cd ~/sources
hg clone https://foss.heptapod.net/mercurial/mercurial-extension_utils/
hg clone https://foss.heptapod.net/mercurial/mercurial-all_paths/update to newest tags,activate by:[extensions]
mercurial_all_paths = ~/sources/mercurial-all_paths/mercurial_all_paths.pyTo upgrade, pull and update.Note that directory names matter. Seemercurial_extension_utilsfor
longer description of this kind of installation.5HistorySeeHISTORY.rst6Repository, bug reports, enhancements suggestionsDevelopment is tracked on HeptaPod, seehttps://foss.heptapod.net/mercurial/mercurial-all_paths/Use issue tracker there for bug reports and enhancement
suggestions.Thanks toOctobusandClever Cloudfor hosting this service.Original repository, maintained by Ludovic Chabant:https://bitbucket.org/ludovicchabant/allpaths7Additional notesInformation about this extension is also available
on Mercurial Wiki:http://mercurial.selenic.com/wiki/AllPathsExtension