mercurial/pushkey.py
author Martin Geisler <mg@aragost.com>
Thu, 07 Jul 2011 10:32:30 +0200
branchstable
changeset 14849 d87814992728
parent 13353 689bf32b3bbd
child 15648 79cc89de5be1
permissions -rw-r--r--
commands: improve help for -y/--noninteractive Before, the help text said that Mercurial would assume 'yes' for all prompts, but this is confusing since many prompts don't have any 'yes' choice. It now more accurately describes what will happen.

# pushkey.py - dispatching for pushing and pulling keys
#
# Copyright 2010 Matt Mackall <mpm@selenic.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.

import bookmarks

def _nslist(repo):
    n = {}
    for k in _namespaces:
        n[k] = ""
    return n

_namespaces = {"namespaces": (lambda *x: False, _nslist),
               "bookmarks": (bookmarks.pushbookmark, bookmarks.listbookmarks)}

def register(namespace, pushkey, listkeys):
    _namespaces[namespace] = (pushkey, listkeys)

def _get(namespace):
    return _namespaces.get(namespace, (lambda *x: False, lambda *x: {}))

def push(repo, namespace, key, old, new):
    '''should succeed iff value was old'''
    pk = _get(namespace)[0]
    return pk(repo, key, old, new)

def list(repo, namespace):
    '''return a dict'''
    lk = _get(namespace)[1]
    return lk(repo)