If you have troubles with “repo sync” Android Eclair release (something like “remote end hung up unexpectedly“) – here is a solution!

The problem is that during heavy load repo cannot connect to the server and fails. And you have to start sync from the beginning again and again.

  1. go to the folder where you made “repo init” some days ago
  2. open .repo/repo/subcmds/sync.py
  3. correct _Fetch function (program will try to sync even without network after this change:-)) – add “while True:” at line 6, “break” at line 9, remove “sys.exit(1)” at line 11.
  4. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
      def _Fetch(self, projects):
        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

p.s. be aware – indented matter!

Enjoy.