0

pygit2 を使用してプッシュするときに問題に直面していますv0.21.3。ここに私のコードがあります:

import pygit2 as git
repo = git.Repository("path/to/my/repo.git") # just for testing,it will not be local

for rem in repo.remotes:
    rem.push_url = rem.url
    rem.credentials = git.UserPass("user","passowrd")
    sig = git.Signature("user","user@example.com")

    rem.push('refs/heads/master',signature=sig)
    # in v0.22.0 it will be like below
    # rem.push(['refs/heads/master'],signature=sig)

しかし、私はいつもこのメッセージを受け取りました:

Traceback (most recent call last):
  File "C:\test.py", line 9, in <module>
    rem.push('refs/heads/master',signature=sig)
  File "C:\Python34\lib\site-packages\pygit2-0.21.3-py3.4-win32.egg\pygit2\remote.py",line 353, in push
    err = C.git_push_update_tips(push, ptr, to_bytes(message))
TypeError: initializer for ctype 'git_signature *' must be a cdata pointer, not bytes

バージョンで試してみると0.22.0エラーにはなりませんでしたが、プッシュ操作もうまくいきませんでした。

:署名パラメーターに問題があると思います。渡すNoneと、デフォルトの署名で正常に動作するためです。

ありがとう。

4

1 に答える 1

0

v0.22.1pygit2 を に、libgit2 を に更新しv0.22.3、問題を修正しました。

于 2015-07-27T06:38:46.077 に答える