Mercurial > hg-stable
annotate mercurial/pushkey.py @ 21518:8e8049b9bda4
run-tests: remove options from Test.__init__
All options are now passed as arguments and we no longer need options.
This enables us to instantiate Test from "plain old data" types. Since
options must be given as arguments, it also makes people think harder
about adding things that may not belong in Test. This will help ensure a
proper separation of responsibility going forward.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Tue, 22 Apr 2014 12:20:10 -0700 |
parents | 59c14bf5a48c |
children | a2c7ae21e8f4 |
rev | line source |
---|---|
11367 | 1 # pushkey.py - dispatching for pushing and pulling keys |
2 # | |
3 # Copyright 2010 Matt Mackall <mpm@selenic.com> | |
4 # | |
5 # This software may be used and distributed according to the terms of the | |
6 # GNU General Public License version 2 or any later version. | |
7 | |
17075
28ed1c4511ce
obsolete: exchange obsolete marker over pushkey
Pierre-Yves.David@ens-lyon.org
parents:
15648
diff
changeset
|
8 import bookmarks, phases, obsolete |
13353
689bf32b3bbd
bookmarks: move pushkey functions into core
Matt Mackall <mpm@selenic.com>
parents:
11367
diff
changeset
|
9 |
11367 | 10 def _nslist(repo): |
11 n = {} | |
12 for k in _namespaces: | |
13 n[k] = "" | |
17298
59c14bf5a48c
pushkey: do not exchange obsole markers if feature is disabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
17075
diff
changeset
|
14 if not obsolete._enabled: |
59c14bf5a48c
pushkey: do not exchange obsole markers if feature is disabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
17075
diff
changeset
|
15 n.pop('obsolete') |
11367 | 16 return n |
17 | |
13353
689bf32b3bbd
bookmarks: move pushkey functions into core
Matt Mackall <mpm@selenic.com>
parents:
11367
diff
changeset
|
18 _namespaces = {"namespaces": (lambda *x: False, _nslist), |
15648
79cc89de5be1
phases: add basic pushkey support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
13353
diff
changeset
|
19 "bookmarks": (bookmarks.pushbookmark, bookmarks.listbookmarks), |
79cc89de5be1
phases: add basic pushkey support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
13353
diff
changeset
|
20 "phases": (phases.pushphase, phases.listphases), |
17075
28ed1c4511ce
obsolete: exchange obsolete marker over pushkey
Pierre-Yves.David@ens-lyon.org
parents:
15648
diff
changeset
|
21 "obsolete": (obsolete.pushmarker, obsolete.listmarkers), |
15648
79cc89de5be1
phases: add basic pushkey support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
13353
diff
changeset
|
22 } |
11367 | 23 |
24 def register(namespace, pushkey, listkeys): | |
25 _namespaces[namespace] = (pushkey, listkeys) | |
26 | |
27 def _get(namespace): | |
28 return _namespaces.get(namespace, (lambda *x: False, lambda *x: {})) | |
29 | |
30 def push(repo, namespace, key, old, new): | |
31 '''should succeed iff value was old''' | |
32 pk = _get(namespace)[0] | |
33 return pk(repo, key, old, new) | |
34 | |
35 def list(repo, namespace): | |
36 '''return a dict''' | |
37 lk = _get(namespace)[1] | |
38 return lk(repo) | |
39 |