0

次の GitPython 関連のコードを実行して、リモート リポジトリからクローンを作成しています。通常、リモート リポジトリの URL の形式はhttps://username:password@host/path/to/repo.git.

Repo.clone_from(repo_url, local_repo_path)

これにより、次のエラーが発生しますが、これはあまり役に立ちません

 File "clone.py", line 192, in clone
    Repo.clone_from(repo_url,local_repo_path)
  File "/usr/local/lib/python2.7/dist-packages/git/repo/base.py", line 844, in clone_from
    return cls._clone(Git(os.getcwd()), url, to_path, GitCmdObjectDB, progress, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/git/repo/base.py", line 791, in _clone
    v=True, **add_progress(kwargs, git, progress))
  File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 431, in <lambda>
    return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 802, in _call_process
    return self.execute(make_call(), **_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 556, in execute
    **subprocess_kwargs
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
TypeError: execve() arg 2 must contain only strings

値を utf-8 としてエンコードしようとしましたが、うまくいきませんでした。これらの変数の型は、strclone コマンドの直前に記録されたときのように表示されます。

Repo.clone_from(unicode(repo_url, "utf-8"), unicode(local_repo_path, "utf-8"))
4

2 に答える 2

1

現在の作業ディレクトリにユニコード文字が含まれているか、によってユニコードとして返されている可能性があると思います。これは、を処理するときにgitpythonによってos.getcwd()使用されます。clone_from

GitPython の最新バージョンはエンコーディングと Unicode を確実に処理するため、最新バージョンの GitPython (v0.3.6) を使用していないと思われます。その場合は、バグを報告してください

于 2015-02-13T08:01:11.737 に答える