##// END OF EJS Templates
diff: don't crash when diffing a revision with a deleted subrepo (issue3153)...
diff: don't crash when diffing a revision with a deleted subrepo (issue3153) When a user requested a diff between a revision (r1) that contained a subrepo and another (r2) that did not, mercurial would crash if r1 was specified before r2 but would execute the diff otherwise. This fixes this behavior by skipping the missing subrepo in the diff.

File last commit:

r13353:689bf32b default
r15634:cfc15cbe stable
Show More
pushkey.py
34 lines | 926 B | text/x-python | PythonLexer
# 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)