Merge remote-tracking branch 'djmattyg007/branches_are_references'

This commit is contained in:
J. David Ibáñez
2014-08-26 10:15:33 +02:00
2 changed files with 20 additions and 1 deletions

View File

@@ -263,7 +263,7 @@ class Repository(_Repository):
return self.checkout_head(**kwargs)
# Case 3: Reference
if type(refname) is Reference:
if isinstance(refname, Reference):
reference = refname
refname = refname.name
else:

View File

@@ -236,6 +236,25 @@ class RepositoryTest_II(utils.RepoTestCase):
self.assertTrue('new' in head.tree)
self.assertTrue('bye.txt' not in self.repo.status())
def test_checkout_branch(self):
branch_i18n = self.repo.lookup_branch('i18n')
# checkout i18n with conflicts and default strategy should
# not be possible
self.assertRaises(pygit2.GitError, self.repo.checkout, branch_i18n)
# checkout i18n with GIT_CHECKOUT_FORCE
head = self.repo.head
head = self.repo[head.target]
self.assertTrue('new' not in head.tree)
self.repo.checkout(branch_i18n, strategy=pygit2.GIT_CHECKOUT_FORCE)
head = self.repo.head
head = self.repo[head.target]
self.assertEqual(head.hex, branch_i18n.target.hex)
self.assertTrue('new' in head.tree)
self.assertTrue('bye.txt' not in self.repo.status())
def test_checkout_index(self):
# some changes to working dir
with open(os.path.join(self.repo.workdir, 'hello.txt'), 'w') as f: