view mercurial/pushkey.py @ 15154:aa2e908c521e

hbisect: add functions to return a label for a cset bisection status Add two new functions that return a string containing the bisection status of the node passed in parameter: - .label(node): return a multi-char string representing the status of node - .shortlabel(node): return a single-char string representing the status of node, usually the initial of the label bisection status .label() .shortlabel() ---------------------------------------------------------- good 'good' 'G' good (implicit) 'good (implicit)' 'G' bad 'bad' 'B' bad (implicit) 'bad (implicit)' 'B' skipped 'skip' 'S' untested 'untested' 'U' ignored 'ignored' 'I' (others) None None There is no point in returning 'range' or 'pruned', as these get covered by another, more meaningful status in the table above. In case the node is not being bisected, the functions return None to leave it up to the caller to decide what to print (nothing, an empty space, or whatever else suits). Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
date Thu, 22 Sep 2011 23:28:49 +0200
parents 689bf32b3bbd
children 79cc89de5be1
line wrap: on
line source

# 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)