# HG changeset patch # User Augie Fackler # Date 1447292738 18000 # Node ID 34d26e22a2b0fd87ac273d166ea8b950f4b093c1 # Parent d527658310867d1df51b6007d4012c5d21ebaec0 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. diff -r d52765831086 -r 34d26e22a2b0 hgext/share.py --- a/hgext/share.py Wed Nov 11 20:43:25 2015 -0500 +++ b/hgext/share.py Wed Nov 11 20:45:38 2015 -0500 @@ -121,7 +121,7 @@ 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 @@ 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 diff -r d52765831086 -r 34d26e22a2b0 mercurial/bookmarks.py --- a/mercurial/bookmarks.py Wed Nov 11 20:43:25 2015 -0500 +++ b/mercurial/bookmarks.py Wed Nov 11 20:45:38 2015 -0500 @@ -22,6 +22,25 @@ 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 @@ 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 @@ 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