Mercurial > hg-stable
annotate mercurial/pushkey.py @ 17075:28ed1c4511ce
obsolete: exchange obsolete marker over pushkey
For a version of the exchange, all markers are exchange. This won't
scale and we will need a better protocol later.
author | Pierre-Yves.David@ens-lyon.org |
---|---|
date | Thu, 07 Jun 2012 19:21:59 +0200 |
parents | 79cc89de5be1 |
children | 59c14bf5a48c |
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] = "" | |
14 return n | |
15 | |
13353
689bf32b3bbd
bookmarks: move pushkey functions into core
Matt Mackall <mpm@selenic.com>
parents:
11367
diff
changeset
|
16 _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
|
17 "bookmarks": (bookmarks.pushbookmark, bookmarks.listbookmarks), |
79cc89de5be1
phases: add basic pushkey support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
13353
diff
changeset
|
18 "phases": (phases.pushphase, phases.listphases), |
17075
28ed1c4511ce
obsolete: exchange obsolete marker over pushkey
Pierre-Yves.David@ens-lyon.org
parents:
15648
diff
changeset
|
19 "obsolete": (obsolete.pushmarker, obsolete.listmarkers), |
15648
79cc89de5be1
phases: add basic pushkey support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
13353
diff
changeset
|
20 } |
11367 | 21 |
22 def register(namespace, pushkey, listkeys): | |
23 _namespaces[namespace] = (pushkey, listkeys) | |
24 | |
25 def _get(namespace): | |
26 return _namespaces.get(namespace, (lambda *x: False, lambda *x: {})) | |
27 | |
28 def push(repo, namespace, key, old, new): | |
29 '''should succeed iff value was old''' | |
30 pk = _get(namespace)[0] | |
31 return pk(repo, key, old, new) | |
32 | |
33 def list(repo, namespace): | |
34 '''return a dict''' | |
35 lk = _get(namespace)[1] | |
36 return lk(repo) | |
37 |