Merge remote-tracking branch 'carlos/checkout-branch'
This commit is contained in:
@@ -154,7 +154,7 @@ def clone_repository(
|
|||||||
# We need to keep the ref alive ourselves
|
# We need to keep the ref alive ourselves
|
||||||
checkout_branch_ref = None
|
checkout_branch_ref = None
|
||||||
if branch:
|
if branch:
|
||||||
checkout_branch_ref = ffi.new('char []', branch)
|
checkout_branch_ref = ffi.new('char []', to_bytes(branch))
|
||||||
opts.checkout_branch = checkout_branch_ref
|
opts.checkout_branch = checkout_branch_ref
|
||||||
|
|
||||||
remote_name_ref = ffi.new('char []', to_bytes(remote_name))
|
remote_name_ref = ffi.new('char []', to_bytes(remote_name))
|
||||||
|
@@ -443,6 +443,17 @@ class CloneRepositoryTest(utils.NoRepoTestCase):
|
|||||||
|
|
||||||
self.assertFalse(repo.is_empty)
|
self.assertFalse(repo.is_empty)
|
||||||
|
|
||||||
|
def test_clone_with_checkout_branch(self):
|
||||||
|
# create a test case which isolates the remote
|
||||||
|
test_repo = clone_repository('./test/data/testrepo.git',
|
||||||
|
os.path.join(self._temp_dir, 'testrepo-orig.git'),
|
||||||
|
bare=True)
|
||||||
|
test_repo.create_branch('test', test_repo[test_repo.head.target])
|
||||||
|
repo = clone_repository(test_repo.path,
|
||||||
|
os.path.join(self._temp_dir, 'testrepo.git'),
|
||||||
|
checkout_branch='test', bare=True)
|
||||||
|
self.assertEqual(repo.lookup_reference('HEAD').target, 'refs/heads/test')
|
||||||
|
|
||||||
# FIXME The tests below are commented because they are broken:
|
# FIXME The tests below are commented because they are broken:
|
||||||
#
|
#
|
||||||
# - test_clone_push_url: Passes, but does nothing useful.
|
# - test_clone_push_url: Passes, but does nothing useful.
|
||||||
@@ -452,8 +463,6 @@ class CloneRepositoryTest(utils.NoRepoTestCase):
|
|||||||
#
|
#
|
||||||
# - test_clone_push_spec: Passes, but does nothing useful.
|
# - test_clone_push_spec: Passes, but does nothing useful.
|
||||||
#
|
#
|
||||||
# - test_clone_checkout_branch: Fails, because the test fixture does not
|
|
||||||
# have any branch named "test"
|
|
||||||
|
|
||||||
# def test_clone_push_url(self):
|
# def test_clone_push_url(self):
|
||||||
# repo_path = "./test/data/testrepo.git/"
|
# repo_path = "./test/data/testrepo.git/"
|
||||||
@@ -485,15 +494,5 @@ class CloneRepositoryTest(utils.NoRepoTestCase):
|
|||||||
# # not sure how to test this either... couldn't find pushspec
|
# # not sure how to test this either... couldn't find pushspec
|
||||||
# # self.assertEqual(repo.remotes[0].fetchspec, "refs/heads/test")
|
# # self.assertEqual(repo.remotes[0].fetchspec, "refs/heads/test")
|
||||||
|
|
||||||
# def test_clone_checkout_branch(self):
|
|
||||||
# repo_path = "./test/data/testrepo.git/"
|
|
||||||
# repo = clone_repository(repo_path, self._temp_dir,
|
|
||||||
# checkout_branch="test")
|
|
||||||
# self.assertFalse(repo.is_empty)
|
|
||||||
# # FIXME: When pygit2 supports retrieving the current branch,
|
|
||||||
# # enable this test
|
|
||||||
# # self.assertEqual(repo.remotes[0].current_branch, "test")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
Reference in New Issue
Block a user