роковое: git-write-tree: ошибка построения деревьев - PullRequest
18 голосов
/ 31 августа 2009

Я пытаюсь импортировать большой репозиторий subversion в git с помощью git-svn (чтобы я мог работать в git, но время от времени по-прежнему обращался к subversion). После импорта более 4000 ревизий я получаю следующую ошибку при запуске git svn fetch или git svn rebase, от которой мне не удается избавиться:

$ git svn fetch
error: invalid object 100644 1f2....742 for 'src/path/.../file.cs'
fatal: git-write-tree: error building trees
write-tree: command returned error: 128

Что я пробовал до сих пор:

  • git fsck --full ничего не сообщает, равно как и git fsck --unreachable или git fsck --no-reflog
  • git gc --aggressive не помогает
  • удаление одного файла пакета и его повторное импортирование с помощью git unpack-objects не помогает
  • git svn reset -rXY с XY чуть ниже последней импортированной версии, похоже, тоже не помогает, равно как и удаление последних записей вручную от reflog до XY.
  • перезагрузка. Звучит глупо, но я наблюдал некоторые странные проблемы при импорте первой ревизии ~ 4000, как будто что-то утекло много ресурсов ядра (скорее всего, в подсистеме Windows), может быть связано с msys / mingw (или сканером вирусов avira который я отключил для тестирования).

Я также не выяснил, что на самом деле означает ошибка 128. Есть идеи? Заранее спасибо!

Может быть связано с этим вопросом , что касается и ошибки 128, но с различными сообщениями об ошибках и без решения.

версия msysgit 1.6.4.msysgit.0 с bash на xp sp3

Ответы [ 2 ]

38 голосов
/ 17 сентября 2009

git svn gc

(возможно git gc и git prune до)

4 голосов
/ 20 октября 2010

Краткий ответ: попробуйте разрешить любые конфликты слияния, зафиксировать их, и они снова получат / вытянут.

Более длинное объяснение: Я предполагаю, что вы решили эту проблему, так как она была опубликована так давно. Я пишу это, так как рейтинг Google статей StackOverflow достаточно высок, так что другие люди с этой проблемой, скорее всего, посетят эту страницу, если у них будет эта ошибка.

Я столкнулся с подобной ошибкой при попытке выполнить «git stash», проблема заключалась в том, что произошел конфликт слияния после извлечения. Я не разрешил и не совершил конфликт, и это оставило хранилище в состоянии, которое не позволяло мне извлекать / объединять / и т.д. ...

Если вы убедитесь, что у вас нет блокирующих файлов, попробуйте еще раз.

Удачи!

...