本文整理汇总了Python中repoman.git.repository.Repository类的典型用法代码示例。如果您正苦于以下问题:Python Repository类的具体用法?Python Repository怎么用?Python Repository使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Repository类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_add_files
def test_add_files(self):
file_name = "absurd_file"
file_path = os.path.join(self.main_repo, file_name)
file_name2 = "absurd_file2"
file_path2 = os.path.join(self.main_repo, file_name2)
with open(file_path, "w") as file:
file_content = "Absurd content"
file.write(file_content)
with open(file_path2, "w") as file:
file_content = "Absurd content2"
file.write(file_content)
repo = pygit2.Repository(self.main_repo)
status = repo.status()
self.assertTrue(file_name in status)
self.assertTrue(file_name2 in status)
self.assertEquals(status[file_name], pygit2.GIT_STATUS_WT_NEW)
self.assertEquals(status[file_name2], pygit2.GIT_STATUS_WT_NEW)
gitrepo = Repository(self.main_repo)
gitrepo.add([file_name, file_name2])
status = repo.status()
self.assertEquals(status[file_name], pygit2.GIT_STATUS_INDEX_NEW)
self.assertEquals(status[file_name2], pygit2.GIT_STATUS_INDEX_NEW)
with self.assertRaises(RepositoryError):
gitrepo.add("nonexistentfile")
示例2: test_merge_isuptodate
def test_merge_isuptodate(self):
gitrepo = Repository(self.cloned_from_repo)
gitrepo.update('master')
uptodate_hash = '52109e71fd7f16cb366acfcbb140d6d7f2fc50c9'
cs = gitrepo[uptodate_hash]
should_be_none = gitrepo.merge(other_rev=cs)
self.assertIsNone(should_be_none)
示例3: test_add_files
def test_add_files(self):
file_name = "absurd_file"
file_path = os.path.join(self.main_repo, file_name)
file_name2 = "absurd_file2"
file_path2 = os.path.join(self.main_repo, file_name2)
with open(file_path, "w") as file:
file_content = "Absurd content"
file.write(file_content)
with open(file_path2, "w") as file:
file_content = "Absurd content2"
file.write(file_content)
def get_status():
git = GitCmd(self.main_repo)
status = {}
for f in git('status', porcelain=True, _iter=True):
s, path = f.split()
status[path] = s
return status
status = get_status()
self.assertTrue(file_name in status)
self.assertTrue(file_name2 in status)
self.assertEquals(status[file_name], '??')
self.assertEquals(status[file_name2], '??')
gitrepo = Repository(self.main_repo)
gitrepo.add([file_name, file_name2])
status = get_status()
self.assertEquals(status[file_name], 'A')
self.assertEquals(status[file_name2], 'A')
with self.assertRaises(RepositoryError):
gitrepo.add("nonexistentfile")
示例4: test_push
def test_push(self):
gitrepo1 = pygit2.Repository(self.main_repo_bare)
gitrepo2 = pygit2.Repository(self.cloned_from_repo)
print "Main repo %s " % gitrepo1.path
print "Cloned from repo %s " % gitrepo2.path
walk_topological = lambda repo: repo.walk(
repo.head.target, pygit2.GIT_SORT_TOPOLOGICAL)
changesets1 = list(walk_topological(gitrepo1))
changesets2 = list(walk_topological(gitrepo2))
self.assertNotEqual(len(changesets1), len(changesets2))
repo2 = Repository(self.cloned_from_repo)
with self.assertRaises(RepositoryError):
repo2.push(
self.main_repo_bare,
"inexistent_destination",
ref_name='master')
repo2.push(self.main_repo, self.main_repo_bare, ref_name='master')
changesets1 = list(walk_topological(gitrepo1))
changesets2 = list(walk_topological(gitrepo2))
self.assertEquals(len(changesets1), len(changesets2))
示例5: test_update_failures
def test_update_failures(self):
repo_name = 'fixture-3'
self.add_content_to_repo(
os.path.join(FIXTURE_PATH, 'fixture-3.git.bundle'),
os.path.join(self.environment_path, repo_name))
gitrepo = Repository(os.path.join(self.environment_path, repo_name))
with self.assertRaises(RepositoryError):
gitrepo.update("doesntexist")
示例6: test_strip
def test_strip(self):
git = GitCmd(self.cloned_from_repo)
gitrepo = Repository(self.cloned_from_repo)
old_head = git('rev-parse', 'HEAD')
parent_old_head = git('log', '-1', pretty='%P').split()[0]
gitrepo.strip(gitrepo[old_head])
new_head = git('rev-parse', 'HEAD')
self.assertNotEquals(old_head, new_head)
self.assertEquals(new_head, parent_old_head)
示例7: test_strip
def test_strip(self):
repo = pygit2.Repository(self.cloned_from_repo)
gitrepo = Repository(self.cloned_from_repo)
old_head = repo.head.get_object()
parent_old_head = old_head.parents[0]
gitrepo.strip(gitrepo[old_head.hex])
new_head = repo.head.get_object()
self.assertNotEquals(old_head.hex, new_head.hex)
self.assertEquals(new_head.hex, parent_old_head.hex)
示例8: test_merge_no_conflicts
def test_merge_no_conflicts(self):
repo = pygit2.Repository(self.cloned_from_repo)
headnewbranch = repo.lookup_reference(
'refs/remotes/origin/newbranch').get_object().hex
gitrepo = Repository(self.cloned_from_repo)
# Checkout to master
gitrepo.update('master')
cs = gitrepo.merge(other_rev=gitrepo[headnewbranch])
self.assertEquals(len(repo.head.get_object().parents), 2)
self.assertEquals(repo.head.get_object().hex, cs.hash)
示例9: test_merge_no_conflicts
def test_merge_no_conflicts(self):
git = GitCmd(self.cloned_from_repo)
headnewbranch = git('rev-parse', 'refs/heads/newbranch')
gitrepo = Repository(self.cloned_from_repo)
# Checkout to master
gitrepo.update('master')
cs = gitrepo.merge(other_rev=gitrepo[headnewbranch])
self.assertEquals(len(git('log', '-1', pretty='%P').split()), 2)
self.assertEquals(git('rev-parse', 'HEAD'), cs.hash)
示例10: test_pull
def test_pull(self):
gitrepo1 = GitCmd(self.main_repo)
gitrepo2 = GitCmd(self.cloned_from_repo)
self.assertNotEqual(
gitrepo1('rev-list', all=True).split(),
gitrepo2('rev-list', all=True).split())
repo = Repository(self.main_repo)
# Pulling a branch
self.assertNotIn('newbranch', [b.name for b in repo.get_branches()])
repo.pull(remote=self.cloned_from_repo, branch='newbranch')
self.assertIn('newbranch', [b.name for b in repo.get_branches()])
# Pulling everything
repo.pull(remote=self.cloned_from_repo)
self.assertEqual(
gitrepo1('rev-list', all=True).split().sort(),
gitrepo2('rev-list', all=True).split().sort())
gitrepo1_refs = list(gitrepo1('show-ref', _iter=True))
gitrepo2_refs = list(gitrepo2('show-ref', _iter=True))
# Check that all remote refs have been fetched
for ref in gitrepo2_refs:
self.assertIn(ref, gitrepo1_refs)
# Pulling from a non existing remote
with self.assertRaises(RepositoryError):
repo.pull(remote='wrong repo')
示例11: test_update
def test_update(self):
repo_name = 'fixture-3'
path = os.path.join(self.environment_path, repo_name)
self.add_content_to_repo(
os.path.join(FIXTURE_PATH, 'fixture-3.git.bundle'),
path)
git = GitCmd(path)
gitrepo = Repository(path)
gitrepo.update("master")
self.assertFalse(os.path.isfile(os.path.join(path, 'file2.txt')))
self.assertTrue(os.path.isfile(os.path.join(path, 'file1.txt')))
self.assertFalse(os.path.isfile(os.path.join(path, 'file3.txt')))
self.assertNotEquals(git('rev-parse', '--abbrev-ref', 'HEAD'), 'HEAD')
gitrepo.update("branch-1")
self.assertTrue(os.path.isfile(os.path.join(path, 'file2.txt')))
self.assertTrue(os.path.isfile(os.path.join(path, 'file1.txt')))
self.assertFalse(os.path.isfile(os.path.join(path, 'file3.txt')))
self.assertNotEquals(git('rev-parse', '--abbrev-ref', 'HEAD'), 'HEAD')
gitrepo.update("branch-2")
self.assertTrue(os.path.isfile(os.path.join(path, 'file3.txt')))
self.assertFalse(os.path.isfile(os.path.join(path, 'file2.txt')))
self.assertTrue(os.path.isfile(os.path.join(path, 'file1.txt')))
self.assertNotEquals(git('rev-parse', '--abbrev-ref', 'HEAD'), 'HEAD')
gitrepo.update("08b952ae66e59b216b1171c0c57082353bc80863")
self.assertFalse(os.path.isfile(os.path.join(path, 'file3.txt')))
self.assertFalse(os.path.isfile(os.path.join(path, 'file2.txt')))
self.assertTrue(os.path.isfile(os.path.join(path, 'file1.txt')))
self.assertEquals(git('rev-parse', '--abbrev-ref', 'HEAD'), 'HEAD')
示例12: test_compare_branches
def test_compare_branches(self):
gitrepo = Repository(self.cloned_from_repo)
masterhead_hash = 'b7fa61d5faf434642e35744b55d8d8f367afc343'
newbranch_hash = 'a277468c9cc0088ba69e0a4b085822d067e360ff'
firstway = gitrepo.compare_branches(masterhead_hash, 'newbranch')
self.assertEquals([
gitrepo['b7fa61d5faf434642e35744b55d8d8f367afc343'],
gitrepo['2a9e1b9be3fb95ed0841aacc1f20972430dc1a5c']],
firstway)
secondway = gitrepo.compare_branches(newbranch_hash, 'master')
self.assertEquals([
gitrepo['a277468c9cc0088ba69e0a4b085822d067e360ff']],
secondway)
示例13: test_init
def test_init(self):
git = GitCmd(os.path.join(self.environment_path, 'remote'))
gitrepo = Repository(os.path.join(self.environment_path, 'remote'))
gitcs = gitrepo[git('rev-parse', 'HEAD')]
self.assertEquals(gitcs.author, "Jose Plana")
self.assertEquals(
gitcs.hash, "52109e71fd7f16cb366acfcbb140d6d7f2fc50c9")
self.assertEquals(
gitcs.desc.rstrip('\n'), "Second changeset".rstrip('\n'))
self.assertFalse(gitcs.merge)
print(gitrepo.get_parents("52109e71fd7f16cb366acfcbb140d6d7f2fc50c9"))
self.assertEquals(
gitcs.parents[0].hash, "e3b1fc907ea8b3482e29eb91520c0e2eee2b4cdb")
示例14: test_commit_commits_but_with_removed_files
def test_commit_commits_but_with_removed_files(self):
file_name = "test1.txt"
file_path = os.path.join(self.main_repo, file_name)
commit_msg = "Test message"
gitrepo = Repository(self.main_repo)
gitrepo.update('master')
os.remove(file_path)
git = GitCmd(self.main_repo)
gitrepo.commit(commit_msg)
git('reset', hard=True)
self.assertTrue(os.path.exists(file_path))
示例15: test_create_branch
def test_create_branch(self):
non_bare_repo_path = os.path.join(
self.environment_path, 'remote-non-bare')
sh.git("clone",
os.path.join(self.environment_path, 'remote'),
non_bare_repo_path,
)
git = GitCmd(non_bare_repo_path)
gitrepo = Repository(non_bare_repo_path)
gitcs = gitrepo[git('rev-parse', 'HEAD')]
branch = gitcs.create_branch('fakebranch')
self.assertEquals(branch.get_changeset(), gitrepo.tip())
self.assertEquals(
'fakebranch', git('rev-parse', '--abbrev-ref', 'fakebranch'))