diff options
-rw-r--r-- | morphlib/gitdir.py | 5 | ||||
-rw-r--r-- | morphlib/gitdir_tests.py | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/morphlib/gitdir.py b/morphlib/gitdir.py index cb247303..c075f456 100644 --- a/morphlib/gitdir.py +++ b/morphlib/gitdir.py @@ -195,6 +195,11 @@ class GitDirectory(object): tree = self._rev_parse_tree(ref) return self.cat_file('blob', tree, filename) + @property + def HEAD(self): + output = self._runcmd(['git', 'rev-parse', '--abbrev-ref', 'HEAD']) + return output.strip() + def init(dirname): '''Initialise a new git repository.''' diff --git a/morphlib/gitdir_tests.py b/morphlib/gitdir_tests.py index 175b8ee7..84b8787a 100644 --- a/morphlib/gitdir_tests.py +++ b/morphlib/gitdir_tests.py @@ -137,3 +137,13 @@ class GitDirectoryContentsTests(unittest.TestCase): gd = morphlib.gitdir.GitDirectory(self.dirname) self.assertRaises(morphlib.gitdir.InvalidRefError, gd.read_file, 'bar', 'no-such-ref') + + def test_HEAD(self): + gd = morphlib.gitdir.GitDirectory(self.dirname) + self.assertEqual(gd.HEAD, 'master') + + gd.branch('foo', 'master') + self.assertEqual(gd.HEAD, 'master') + + gd.checkout('foo') + self.assertEqual(gd.HEAD, 'foo') |