2017-06-02 6 views
0

今私はすべてのコミットを取得し、whemをdbに保存したいときにreposを複製するためにgit svnを使用しています。svn reposでpygit2を使ってすべてのレポコミットを取得

すべてのコミットを取得するにはpygit2.Repositoryを使用しますが、私は '/ trunk /'ブランチからのコミットのみを受け取ることがわかります。

* master 
    remotes/origin/test-1 
    remotes/origin/[email protected] 
    remotes/origin/trunk 

を、私はgit log remotes/origin/test-1を行うとき、私は適切なコミットを引き起こす参照してください。

私はターミナルでgit branch -aを使用する場合、私はすべてのブランチを見ることができます。

しかし、pygit2.Repositoryを使ってリポジトリからすべてのコミットを受け取ろうとすると、他のブランチからではなく、トランクのみからコミットを受け取ります。ブランチからコミットする方法も教えてください。たぶん私はpygit2を使用するべきではありませんが、いくつかの他のpythonモジュールを使用するべきですか?

['origin/test-1', 'origin/trunk', 'origin/[email protected]'] 

が、私はrepo.lookup_branch('origin/test-1')またはrepo.lookup_branch('remote/origin/test-1')を実行しようとするとき、私が代わりにpygit2.Branchオブジェクト

と私はのどれを受け取らない:repo.listall_branchesを使用して

(2)私はこの枝を見pygit2ものを見ます

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

私はtrunkからコミットを受信します。 trunkからコミットするだけでなく、すべてのブランチからすべてのコミットを受け取る適切な方法を教えてください。

答えて

1

http://www.pygit2.org/references.html#branchesのドキュメントによれば、repo.branchesは、すべてのブランチ、ローカルおよびのリモートブランチを提供する必要があります。

+0

以前のバージョンのpygit2を使用していますが、repo.branchesはまだありません。しかし、私はすべてのコミットを取得する方法を見つける:あなたはこのようなbranch_typeを渡す必要があります - このコードを使用して私はすべての必要なコミットヘッドを受け取ります。repo.lookup_branch( 'origin/test-1'、2).get_object()すべての枝についてrepo.walk(head.hex)を実行します。 – Vova

関連する問題