Как скачать исходный код Google для Android - PullRequest
6 голосов
/ 13 августа 2011

Как вы знаете, в https://android.googlesource.com/. есть список из нескольких сотен проектов. Я бы хотел загрузить их все в Windows Machine. Согласно документу Google,

To install, initialize, and configure Repo:

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo


To clone the entire platform, install repo, and run:

mkdir mydroid
cd mydroid
repo init -u https://android.googlesource.com/platform/manifest
repo sync

Однако, на моей машине я не могу "repo init" в Git Bash, потому что он говорит, что у него нет python. У меня установлен python, но git bash его не распознает. Обратите внимание, что я также установил каталог python в системный путь. Если кто-нибудь может дать совет, я был бы признателен. Спасибо

ОБНОВЛЕНИЕ: Я считаю, что это проблема с новой версией Git Bash для Windows. Системный путь вообще не применяется к Git Bash - я мог легко проверить, работает ли системный путь с командной строкой. Во всяком случае, я попробовал это вместо этого, и это на самом деле работает с ошибкой, конечно.

  /c/python27/python.exe  ../bin/repo init -u https://android.googlesource.com/platform/manifest

Сообщение об ошибке:

 $ /c/python27/python.exe ../bin/repo init -u https://android.googlesource.com/platform/manifest
 Traceback (most recent call last):
   File "../bin/repo", line 91, in <module>
    import readline
 ImportError: No module named readline

OK. Я передал эту ошибку, установив pyreadline в Windows:

 easy_install pyreadline

Если вы получили ошибку, вы должны установить setuptools с

 http://pypi.python.org/pypi/setuptools#files

И, наконец, снова выполнил команду, чтобы получить:

$ repo init -u https://android.googlesource.com/platform/manifest
fatal: unable to start d:\mywork\dev\GoogleAndroid\working_dir\.repo\repo/main.py
fatal: [Errno 8] Exec format error

Ответы [ 3 ]

6 голосов
/ 13 августа 2011

С одним щелчком , загрузите последний код в виде .tar.gz файла, отсюда https://android.googlesource.com/platform/frameworks/base/+archive/master.tar.gz, Android можно найти в папке core

Редактировать
Альтернатива здесь:
http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/

Просто выберите версию, а затем параметры загрузки в.

1 голос
/ 05 сентября 2013

Этот ответ объясняет, как исправить эту ошибку:

fatal: unable to start c:\path\.repo\repo/main.py
fatal: [Errno 8] Exec format error

Резюме: Я наконец-то использовал python, упакованный Cygwin.
Подробности: Ниже приводится полная история.

Подсказка от repo отслеживания ошибок должна добавить '/c/app/Python27/python ':

  • строка 136 в v1.20
    REPO_MAIN = '/c/app/Python27/python ' + S_repo + '/main.py'
  • строка 735 в v1.20 (начало функции main)
    wrapper_path = '/c/app/Python27/python ' + os.path.abspath(__file__)

Но мы получаем ошибку TypeError: coercing to Unicode: need string or buffer, NoneType found

Поэтому я отменил эти изменения выше и выполнил другие изменения ниже (в версии 1.20):

  • строка 136, заменена одиночная косая черта на двойную обратную косую черту:
    REPO_MAIN = S_repo + '\\main.py'
  • строка 766, добавлен python абсолютный путь в качестве первого элемента me:
    me = ['C:\\app\\Python27\\python.exe', repo_main,
    '--repo-dir=%s' % rel_repo_dir,
    '--wrapper-version=%s' % ver_str,
    '--wrapper-path=%s' % wrapper_path,
    '--']
  • строка 776, заменена os.execv(repo_main, me) на
    os.execv('C:\\app\\Python27\\python.exe', me)

Однако мы все равно получаем ошибку:

$ Traceback (most recent call last):
  File "c:\path\.repo\repo\main.py", line 39, in <module>
    from subcmds.version import Version
  File "c:\path\.repo\repo\subcmds\__init__.py", line 36, in <module>
    ['%s' % name])
  File "c:\path\.repo\repo\subcmds\forall.py", line 17, in <module>
    import fcntl
ImportError: No module named fcntl

Документация Python v2.7 fcntl говорит, что fcntl доступна только для платформы Unix.

Я, наконец, снова отменил все изменения в скрипте repo и установил Cygwin, включая его пакеты python и git: это удалось как прелесть.

Но так как символические ссылки , имитируемые Cygwin, не распознаются MSysGit, мы должны использовать Cygwin git. А графические интерфейсы поверх git не полностью совместимы с Cygwin git ...

(см. Также мой другой пост )

Редактировать:
Cygwin может использовать нативные символические ссылки NTFS (просто установите CYGWIN=winsymlinks:native и станьте администратором). Поэтому можно использовать MSysGit и любой другой графический интерфейс на его основе: -)

1 голос
/ 13 августа 2011

Если вы в качестве примера рассмотрите эту другую программу "sympy" , которая также нуждается в git bash и python, то только вопрос добавления python в ваш PATH до дозапуск сеанса git bash.

Установите Python из:

http://python.org/download/

, загрузив «Установщик Python 2.7 для Windows» (или Python 2.6 или 2.5) и запустите его.
Добавьте каталог python в переменную пути вашей системной среды
(My Computer -> Advanced -> Environment Variables -> Path -> Edit).

Обратите внимание, что сам сценарий репо должен находиться в пути, как указано на странице Контроль версий Android:

Репозиторий является хранилищеминструмент управления, который мы создали поверх Git.При необходимости Repo объединяет множество репозиториев Git, загружает их в нашу систему контроля версий и автоматизирует части рабочего процесса разработки Android.
Repo не предназначен для замены Git, а только для того, чтобы упростить работу с Git в контексте.Android.
Команда repo - это исполняемый скрипт Python, который можно поместить в любое место на вашем пути .

...