summaryrefslogtreecommitdiff
path: root/morphlib/gitdir.py
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2014-09-02 16:51:28 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2014-09-02 16:51:28 +0000
commitaea1029044b7e0d4578f3896bf85898f33791c89 (patch)
tree11ad39373466065a3058fab42372381e517e11ec /morphlib/gitdir.py
parentf96452965e8065466bdd7188e66dded581bdc1a7 (diff)
parent66ec3928392d09cba6037fc6c665cb1aa02e86e1 (diff)
downloadmorph-aea1029044b7e0d4578f3896bf85898f33791c89.tar.gz
Merge branch 'baserock/richardmaw/less-ls-remote'
Reviewed-by: Lars Wirzenius Reviewed-by: Sam Thursfield
Diffstat (limited to 'morphlib/gitdir.py')
-rw-r--r--morphlib/gitdir.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/morphlib/gitdir.py b/morphlib/gitdir.py
index 40ac643f..9fef4f1e 100644
--- a/morphlib/gitdir.py
+++ b/morphlib/gitdir.py
@@ -515,6 +515,22 @@ class GitDirectory(object):
else:
return 'refs/heads/' + ref
+ def get_upstream_of_branch(self, branch): # pragma: no cover
+ try:
+ out = morphlib.git.gitcmd(
+ self._runcmd, 'rev-parse', '--abbrev-ref',
+ '%s@{upstream}' % branch).strip()
+ return out
+ except cliapp.AppException as e:
+ emsg = str(e)
+ if 'does not point to a branch' in emsg:
+ # ref wasn't a branch, can't have upstream
+ # treat it the same as no upstream for convenience
+ return None
+ elif 'No upstream configured for branch' in emsg:
+ return None
+ raise
+
def resolve_ref_to_commit(self, ref):
return self._rev_parse('%s^{commit}' % ref)