Java/Android2010. 12. 14. 12:24

"repo sync" 명령어로 다운 받는 Android 풀소스는 용량이 매우 크고

또 다운 받는 서버에 부하가 굉장히 심하기 때문에 다운 받는 도중에 끊어지는 현상이 자주 발생한다.


fatal: The remote end hung up unexpectedly MiB | 37 KiB/s
fatal: early EOF
fatal: index-pack failed
error: Cannot fetch platform/cts




이럴 경우 다운로드가 끊어질 때마다 다시 시도 해주어야 하는 불편이 있다.

"repo sync"를 한 폴더에서 .repo/repo/subcmds/sync.py 파일을 열어서 _Fetch 함수를 아래처럼 수정해준다.


def _Fetch(self, projects, opt):
    fetched = set()
    pm = Progress('Fetching projects', len(projects))

    for project in projects:
        pm.update()
        while True:
            if project.Sync_NetworkHalf():
                fetched.add(project.gitdir)
                break
            else:
                print >>sys.stderr, 'error: Cannot fetch %s' % project.name

    pm.end()
    return fetched


이렇게 수정을 하고 "repo sync"를 해주면 다운로드 도중에 끊어지더라도 자동으로 다시 시도하게 된다.

참고 주소 : http://android.amberfog.com/?p=230
Posted by Huikyun