def findoutgoing(self, parent): '''Return the base set of outgoing nodes. A caching wrapper around mercurial.localrepo.findoutgoing(). Complains (to the user), if the parent workspace is non-existent or inaccessible''' self.ui.pushbuffer() try: try: ui = self.ui if hasattr(cmdutil, 'remoteui'): ui = cmdutil.remoteui(ui, {}) pws = hg.repository(ui, parent) if Version.at_least("1.6"): return discovery.findoutgoing(self.repo, pws) else: return self.repo.findoutgoing(pws) except error.RepoError: self.ui.warn("Warning: Parent workspace '%s' is not " "accessible\n" "active list will be incomplete\n\n" % parent) return [] finally: self.ui.popbuffer()
def findoutgoing(repo, remote, force): # First attempt is for Mercurial <= 1.5 second is for >= 1.6 try: return repo.findoutgoing(remote) except AttributeError: from mercurial import discovery return discovery.findoutgoing(repo, remote, force=force)
def findoutgoing(repo, other): try: # Mercurial 1.6 and higher from mercurial import discovery return discovery.findoutgoing(repo, other, force=False) except ImportError: # Mercurial 1.5 and lower return repo.findoutgoing(other, force=False)
def outgoing(wdrepo, masterrepo): try: return wdrepo.findoutgoing(masterrepo) except AttributeError: from mercurial import hg, discovery revs, checkout = hg.addbranchrevs(wdrepo, wdrepo, ('', []), None) o = discovery.findoutgoing(wdrepo, masterrepo) return wdrepo.changelog.nodesbetween(o, revs)[0]
def findoutgoing(repo, other): try: # Mercurial 1.6 through 1.8 from mercurial import discovery return discovery.findoutgoing(repo, other, force=False) except AttributeError: # Mercurial 1.9 and higher common, _anyinc, _heads = discovery.findcommonincoming(repo, other, force=False) return repo.changelog.findmissing(common) except ImportError: # Mercurial 1.5 and lower return repo.findoutgoing(other, force=False)
def findoutgoing(repo, remote, force): # First attempt is for Mercurial <= 1.5 second is for >= 1.6 try: return repo.findoutgoing(remote) except AttributeError: from mercurial import discovery try: # Mercurial <= 1.8 return discovery.findoutgoing(repo, remote, force=force) except AttributeError: # Mercurial >= 1.9 common, _anyinc, _heads = discovery.findcommonincoming(repo, remote, force=force) return repo.changelog.findmissing(common)
def getoutgoing(dest, revs): '''Return the revisions present locally but not in dest''' dest = ui.expandpath(dest or 'default-push', dest or 'default') dest, branches = hg.parseurl(dest) revs, checkout = hg.addbranchrevs(repo, repo, branches, revs) if revs: revs = [repo.lookup(rev) for rev in revs] other = hg.repository(hg.remoteui(repo, opts), dest) ui.status(_('comparing with %s\n') % url.hidepassword(dest)) o = discovery.findoutgoing(repo, other) if not o: ui.status(_("no changes found\n")) return [] o = repo.changelog.nodesbetween(o, revs)[0] return [str(repo.changelog.rev(r)) for r in o]
def findoutgoing(repo, remoterepo): # The method for doing this has changed a few times... try: from mercurial import discovery except ImportError: # Must be earlier than 1.6 return repo.findoutgoing(remoterepo) try: if LooseVersion(util.version()) >= LooseVersion('2.1'): outgoing = discovery.findcommonoutgoing(repo, remoterepo) return outgoing.missing common, outheads = discovery.findcommonoutgoing(repo, remoterepo) return repo.changelog.findmissing(common=common, heads=outheads) except AttributeError: # Must be earlier than 1.9 return discovery.findoutgoing(repo, remoterepo)