使用pygit2和svn repos获取所有repo提交

时间:2017-06-02 11:09:25

标签: git python-2.7 svn version-control pygit2

现在我正在使用git svn进行克隆repos,当我想获得所有提交并将数据存储到数据库时。

为了获得我使用pygit2.Repository的所有提交,但我看到我只收到来自'/ trunk /'分支的提交。

如果我在终端中使用git branch -a我可以看到所有分支:

* master
  remotes/origin/test-1
  remotes/origin/test-1@468
  remotes/origin/trunk

当我git log remotes/origin/test-1时,我会看到正确提交的结果。

但是当我尝试使用pygit2.Repository从repo接收所有提交时,我只接收来自主干的提交,而不是来自其他分支的提交 - 你能告诉我一种从分支机构获得提交的方法吗?也许我不应该使用pygit2但使用其他一些python模块?

使用repo.listall_branches(2)我看到pygit2看到了这个分支:

['origin/test-1', 'origin/trunk', 'origin/test-1@468']

但是当我尝试repo.lookup_branch('origin/test-1')repo.lookup_branch('remote/origin/test-1')时,我收到的是无pygit2.Branch个对象

当我做的时候

head = repo.lookup_branch('master').get_object()
for native_commit in repo.walk(head.hex):
    print(i)

我只收到trunk的提交。 请告诉我一个正确的方法来接收来自所有分支的所有提交,而不仅仅是来自trunk的提交。

1 个答案:

答案 0 :(得分:1)

根据Fiddle的文档,repo.branches应该为您提供所有分支,本地远程分支。