Mercurial > public > mercurial-scm > hg-stable
diff mercurial/localrepo.py @ 10960:ca739acf1a98
commands: add more robust support for 'hg log -b' (issue2078)
Fixes issue2078 and adds tests to cover various 'hg log -b' uses.
This change adds a localrepo.lookupbranch(key, remote=None) function. This
will look up the branch of the revision with the given key. The algorithm
works like this:
* If a remote repo is given and KEY is the name of a branch in that repo,
return KEY.
* If no remote repo is given and KEY is the name of a branch in the local
repo object, return KEY.
* Otherwise look up the revision with the identifier KEY in the local repo
and return its branch.
This change also makes 'hg log -b' use this new functionality and adds a few
tests for it.
author | Steve Losh <steve@stevelosh.com> |
---|---|
date | Mon, 12 Apr 2010 19:33:25 -0400 |
parents | 4d81cbd8a851 |
children | ca052b484e56 |
line wrap: on
line diff
--- a/mercurial/localrepo.py Mon Apr 19 16:47:44 2010 -0500 +++ b/mercurial/localrepo.py Mon Apr 12 19:33:25 2010 -0400 @@ -455,6 +455,14 @@ pass raise error.RepoLookupError(_("unknown revision '%s'") % key) + def lookupbranch(self, key, remote=None): + repo = remote or self + if key in repo.branchmap(): + return key + + repo = (remote and remote.local()) and remote or self + return repo[key].branch() + def local(self): return True