Mercurial > hg-allpaths
view allpaths.py @ 3:be90faafa754
And added some formatting.
author | Marcin Kasperski <Marcin.Kasperski@mekk.waw.pl> |
---|---|
date | Sun, 08 Nov 2015 07:49:01 +0100 |
parents | f8703c9e2fb9 |
children | b1d440f1027a |
line wrap: on
line source
# allpaths.py - execute commands on multiple paths # # This software may be used and distributed according to the terms of # the GNU General Public License version 2 or any later version. '''execute commands on multiple paths''' import mercurial.util import mercurial.commands from mercurial.i18n import _ push_flags = ['force', 'rev', 'bookmark', 'branch', 'new-branch'] def pushall(ui, repo, *args, **opts): """execute a push command on multiple paths""" # Filter options that should be passed on to `push`. push_opts = {} for key in opts: if key in push_flags: push_opts[key] = opts[key] # Get the paths to push to. group = opts.get('group') paths = ui.configitems(group) if not paths: raise mercurial.util.Abort(_('No paths defined in section %s') % group) # Push! for path in paths: try: mercurial.commands.push(ui, repo, path[1], **push_opts) except Exception as e: if not opts.get('ignore_errors'): raise ui.warn(_('error pushing to %s: %s') % (path[1], e)) cmdtable = { "pushall": ( pushall, [ ('g', 'group', 'paths', _('use a named group of paths')), ('', 'ignore-errors', None, _('continue execution despite errors')), ('f', 'force', None, _('force push')), ('r', 'rev', [], _('a changeset intended to be included in the destination'), _('REV')), ('B', 'bookmark', [], _('bookmark to push'), _('BOOKMARK')), ('b', 'branch', [], _('a specific branch you would like to push'), _('BRANCH')), ('', 'new-branch', False, _('allow pushing a new branch')) ], _('[-g GROUP] [--ignore-errors] <push options>')) }