Невозможно обновить рабочий каталог с помощью репо - PullRequest
0 голосов
/ 26 апреля 2011

У меня есть локальный проект, который является хранилищем git.Я добавил этот локальный проект в файл манифеста Android.Всякий раз, когда в моем локальном репозитории появляется новый коммит, я могу получить свой локальный проект, используя repo sync -n <local project>.Однако когда я пытаюсь обновить рабочий каталог, используя repo sync -l <local project>, я получаю сообщение об ошибке

error.GitError: try rev-list ('^ 0f4e601043d095c8920dad010e5814ef22a20f45', 'HEAD', '-'):фатальный: плохой объект 0f4e601043d095c8920dad010e5814ef22a20f45

Кто-нибудь может предоставить указатель для решения этой проблемы.

1 Ответ

0 голосов
/ 25 сентября 2013

У меня была эта проблема ранее сегодня - я не смог найти плохой объект, но он возник из-за самообновления репо после перевода всех проектов в безголовое состояние. Проверка вручную мастера и выполнение всех подпроектов решили эту проблему для меня.

Если вы действительно ленивы и у вас много проектов, следующая команда bash может сделать жизнь проще:

for i in `ls -d */`; do cd $i; git checkout master; git pull origin master; cd ..; done;

Примечание : эта команда предполагает, что:

  • Вы находитесь в базовом каталоге репозитория, и все подкаталоги являются проектами git
  • У вас нет никаких незафиксированных изменений (используйте статус репо, чтобы дважды это проверить)

Вероятно, не составит труда создать более интеллектуальный скрипт (рекурсия, поиск в каталоге .git и т. Д.)

...