mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 23:07:18 +03:00
bookmarks: hoist getbkfile out of bmstore class
It's totally fine that this hook exists, but I don't see a need for it to live inside the bmstore class.
This commit is contained in:
parent
1495625440
commit
c6a7c82c31
@ -121,7 +121,7 @@ def clone(orig, ui, source, *args, **opts):
|
||||
return orig(ui, source, *args, **opts)
|
||||
|
||||
def extsetup(ui):
|
||||
extensions.wrapfunction(bookmarks.bmstore, 'getbkfile', getbkfile)
|
||||
extensions.wrapfunction(bookmarks, '_getbkfile', getbkfile)
|
||||
extensions.wrapfunction(bookmarks.bmstore, 'recordchange', recordchange)
|
||||
extensions.wrapfunction(bookmarks.bmstore, '_writerepo', writerepo)
|
||||
extensions.wrapcommand(commands.table, 'clone', clone)
|
||||
@ -149,12 +149,12 @@ def _getsrcrepo(repo):
|
||||
srcurl, branches = parseurl(source)
|
||||
return repository(repo.ui, srcurl)
|
||||
|
||||
def getbkfile(orig, self, repo):
|
||||
def getbkfile(orig, repo):
|
||||
if _hassharedbookmarks(repo):
|
||||
srcrepo = _getsrcrepo(repo)
|
||||
if srcrepo is not None:
|
||||
repo = srcrepo
|
||||
return orig(self, repo)
|
||||
return orig(repo)
|
||||
|
||||
def recordchange(orig, self, tr):
|
||||
# Continue with write to local bookmarks file as usual
|
||||
|
@ -22,6 +22,25 @@ from . import (
|
||||
util,
|
||||
)
|
||||
|
||||
def _getbkfile(repo):
|
||||
"""Hook so that extensions that mess with the store can hook bm storage.
|
||||
|
||||
For core, this just handles wether we should see pending
|
||||
bookmarks or the committed ones. Other extensions (like share)
|
||||
may need to tweak this behavior further.
|
||||
"""
|
||||
bkfile = None
|
||||
if 'HG_PENDING' in os.environ:
|
||||
try:
|
||||
bkfile = repo.vfs('bookmarks.pending')
|
||||
except IOError as inst:
|
||||
if inst.errno != errno.ENOENT:
|
||||
raise
|
||||
if bkfile is None:
|
||||
bkfile = repo.vfs('bookmarks')
|
||||
return bkfile
|
||||
|
||||
|
||||
class bmstore(dict):
|
||||
"""Storage for bookmarks.
|
||||
|
||||
@ -41,7 +60,7 @@ class bmstore(dict):
|
||||
dict.__init__(self)
|
||||
self._repo = repo
|
||||
try:
|
||||
bkfile = self.getbkfile(repo)
|
||||
bkfile = _getbkfile(repo)
|
||||
for line in bkfile:
|
||||
line = line.strip()
|
||||
if not line:
|
||||
@ -60,24 +79,6 @@ class bmstore(dict):
|
||||
if inst.errno != errno.ENOENT:
|
||||
raise
|
||||
|
||||
def getbkfile(self, repo):
|
||||
"""Hook so that extensions that mess with the store can hook bm storage.
|
||||
|
||||
For core, this just handles wether we should see pending
|
||||
bookmarks or the committed ones. Other extensions (like share)
|
||||
may need to tweak this behavior further.
|
||||
"""
|
||||
bkfile = None
|
||||
if 'HG_PENDING' in os.environ:
|
||||
try:
|
||||
bkfile = repo.vfs('bookmarks.pending')
|
||||
except IOError as inst:
|
||||
if inst.errno != errno.ENOENT:
|
||||
raise
|
||||
if bkfile is None:
|
||||
bkfile = repo.vfs('bookmarks')
|
||||
return bkfile
|
||||
|
||||
def recordchange(self, tr):
|
||||
"""record that bookmarks have been changed in a transaction
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user