diff --git a/hggit/__init__.py b/hggit/__init__.py index bd4674a5dee253d0131635324908aca43c189cf1_aGdnaXQvX19pbml0X18ucHk=..c53cf3e64409dcfd6792ee67caabc1a374f9aa24_aGdnaXQvX19pbml0X18ucHk= 100644 --- a/hggit/__init__.py +++ b/hggit/__init__.py @@ -133,7 +133,6 @@ from . import templates from . import util -from mercurial.node import bin from mercurial import ( bundlerepo, demandimport, @@ -142,7 +141,6 @@ extensions, pycompat, registrar, - repoview, ) demandimport.IGNORES |= { @@ -173,6 +171,7 @@ def extsetup(ui): commands.extsetup(ui) gitrepo.extsetup(ui) + hgrepo.extsetup(ui) overlay.extsetup(ui) revsets.extsetup(ui) schemes.extsetup(ui) @@ -222,22 +221,6 @@ extensions.wrapfunction(bundlerepo, b'getremotechanges', getremotechanges) -def pinnedrevs(orig, repo): - pinned = orig(repo) - - # Mercurial pins bookmarks, even if obsoleted, so that they always - # appear in e.g. log; do the same with git tags and remotes. - if repo.local() and hasattr(repo, 'githandler'): - rev = repo.changelog.rev - - pinned.update(rev(bin(r)) for r in repo.githandler.tags.values()) - pinned.update(rev(r) for r in repo.githandler.remote_refs.values()) - - return pinned - -extensions.wrapfunction(repoview, b'pinnedrevs', pinnedrevs) - - @util.transform_notgit def exchangepull(orig, repo, remote, heads=None, force=False, bookmarks=(), **kwargs): diff --git a/hggit/hgrepo.py b/hggit/hgrepo.py index bd4674a5dee253d0131635324908aca43c189cf1_aGdnaXQvaGdyZXBvLnB5..c53cf3e64409dcfd6792ee67caabc1a374f9aa24_aGdnaXQvaGdyZXBvLnB5 100644 --- a/hggit/hgrepo.py +++ b/hggit/hgrepo.py @@ -1,5 +1,7 @@ from __future__ import generator_stop +from mercurial import extensions +from mercurial import repoview from mercurial import util as hgutil from mercurial.node import bin @@ -57,3 +59,20 @@ repo.__class__ = hgrepo + +def pinnedrevs(orig, repo): + pinned = orig(repo) + + # Mercurial pins bookmarks, even if obsoleted, so that they always + # appear in e.g. log; do the same with git tags and remotes. + if repo.local() and hasattr(repo, 'githandler'): + rev = repo.changelog.rev + + pinned.update(rev(bin(r)) for r in repo.githandler.tags.values()) + pinned.update(rev(r) for r in repo.githandler.remote_refs.values()) + + return pinned + + +def extsetup(ui): + extensions.wrapfunction(repoview, b'pinnedrevs', pinnedrevs)