2013-08-05 4 views
1

내가 repo-1.19 사용의 repo 초기화 UnicodeDecodeError 13.04

$ wget -nv 'http://code.google.com/p/git-repo/downloads/detail?name=repo-1.19' 
2013-08-05 02:36:32 URL:http://code.google.com/p/git-repo/downloads/detail?name=repo-1.19 [9673] -> "detail?name=repo-1.19.3" [1] 
$ chmod +x repo-1.19 
$ ./repo-1.19 --version 
repo version v1.12.2 
     (from https://gerrit.googlesource.com/git-repo) 
repo launcher version 1.19 
     (from /home/u/Téléchargements/repo-1.19) 
git version 1.8.1.2 
Python 2.7.4 (default, Jul 5 2013, 08:21:57) 
[GCC 4.7.3] 

을하지만 초기화하려고 할 때 파이썬 UnicodeDecodeError 있습니다

    :

    $ rm -rf .repo 
    $ ./repo-1.19 init -u git://github.com/CyanogenMod/android.git -b cm-10.2 
    Get https://gerrit.googlesource.com/git-repo 
    remote: Counting objects: 101, done 
    remote: Finding sources: 100% (101/101) 
    remote: Total 2533 (delta 1442), reused 2533 (delta 1442) 
    Receiving objects: 100% (2533/2533), 1.71 MiB | 1.80 MiB/s, done. 
    Resolving deltas: 100% (1442/1442), done. 
    From https://gerrit.googlesource.com/git-repo 
    * [new branch]  maint  -> origin/maint 
    * [new branch]  master  -> origin/master 
    * [new branch]  stable  -> origin/stable 
    * [new tag]   v1.0  -> v1.0 
    [... lines removed ...] 
    * [new tag]   v1.9.6  -> v1.9.6 
    Get git://github.com/CyanogenMod/android.git 
    Traceback (most recent call last): 
        File "/home/u/Téléchargements/.repo/repo/main.py", line 414, in <module> 
        _Main(sys.argv[1:]) 
        File "/home/u/Téléchargements/.repo/repo/main.py", line 390, in _Main 
        result = repo._Run(argv) or 0 
        File "/home/u/Téléchargements/.repo/repo/main.py", line 138, in _Run 
        result = cmd.Execute(copts, cargs) 
        File "/home/u/Téléchargements/.repo/repo/subcmds/init.py", line 347, in Execute 
        self._SyncManifest(opt) 
        File "/home/u/Téléchargements/.repo/repo/subcmds/init.py", line 137, in _SyncManifest 
        m._InitGitDir() 
        File "/home/u/Téléchargements/.repo/repo/project.py", line 1847, in _InitGitDir 
        self.bare_git.init() 
        File "/home/u/Téléchargements/.repo/repo/project.py", line 2197, in runner 
        capture_stderr = True) 
        File "/home/u/Téléchargements/.repo/repo/git_command.py", line 167, in __init__ 
        _setenv(env, GIT_DIR, gitdir) 
        File "/home/u/Téléchargements/.repo/repo/git_command.py", line 120, in _setenv 
        env[name] = value.encode() 
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 9: ordinal not in range(128) 
    

    내가로부터 조언을 따랐다

  • Android
  • xda-university
  • Krishankant Singhal
  • CyanogenMod

나는 많은 많은 가능성을 시도했으나 성공 :

./repo-1.19 init -u git://android.git.kernel.org/platform/manifest.git -b android-4.3_r2 
./repo-1.19 init -u https://android.git.kernel.org/platform/manifest.git -b android-4.3_r2 
./repo-1.19 init -u git://android.googlesource.com/platform/manifest 

어디에 내 실수입니까?

답변

6

오류는 사용중인 경로를 참조한다 :

File "/home/u/Téléchargements/.repo/repo/git_command.py", line 120, in _setenv 
    env[name] = value.encode() 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 9: ordinal not in range(128) 

0xc3 in position 9/home/u/Téléchargements의 'E'입니다. 이 버그는 repo의 버그처럼 보이지만 ASCII 문자만으로 된 디렉터리 이름을 사용하면이 문제를 해결할 수 있습니다.

git_command.py에서

: 파이썬 2와

def _setenv(env, name, value): 
    env[name] = value.encode() 

이 실패 US-ASCII와 같은 값을 인코딩하려고합니다. 다음과 같아야합니다.

def _setenv(env, name, value): 
    env[name] = value.encode(sys.getfilesystemencoding()) 

(Setting the correct encoding when piping stdout in Python 참조).

+1

아직 2015 년에 실패하고 있습니다 ... –

+1

그리고 2017 년에도 고정되어 있지 않습니다 :) – ypcs