Git выдаёт сообщение «BUG: есть записи без индекса» - PullRequest
5 голосов
/ 20 июля 2011

При выполнении:

git merge some-branch

Я получаю

BUG: There are unmerged index entries:
BUG: 3 docfatal: Bug in merge-recursive.c

Не уверен, что это значит, но выглядит как-то более неожиданно, чем обычно. Что мне с этим делать? Есть ли какая-нибудь команда очистки, которая может помочь мне здесь?

EDIT

Что еще хуже, эта ошибка на самом деле распространяется по одной из версий моего источника. Поскольку some-branch изначально был только моей локальной работой, я перенес его на удаленный сервер. Затем клонировал свежий репозиторий и попытался объединить вышеупомянутую ветку в этой копии и получил то же сообщение.

РЕДАКТИРОВАТЬ 2

Я использовал GIT_MERGE_VERBOSITY = 5 и получил:

$> export GIT_MERGE_VERBOSITY=5; git merge origin/funkload 
Merging:
a1ef5a2 Uaktualniony INSTALL.
virtual origin/funkload
found 2 common ancestor(s):
d2eb442 Resources py.
119871b Nowy commit w doc.
  Merging:
  d2eb442 Resources py.
  119871b Nowy commit w doc.
  found 1 common ancestor(s):
  62f4183 Poprawiony bug w obsłudze linków do resources, które są null.
  Removing doc/concept/agreement.lyx
  Removing doc/concept/agreement.pdf
  Removing doc/concept/concept.lyx
  ...
  Removing druglo-doc
  Removing src/db/fixtures/initial.json
  Skipped src/druglo/backend/actions/tests/fight.py (merged same as existing)
  Auto-merging src/druglo/backend/characters/models/behaviours.py
  CONFLICT (content): Merge conflict in src/druglo/backend/characters/models/behaviours.py
  Auto-merging src/druglo/backend/players/models/players.py
  Auto-merging src/druglo/backend/worlds/resources.py
  CONFLICT (content): Merge conflict in src/druglo/backend/worlds/resources.py
  Auto-merging src/druglo/common/integrity/webservices/resources.py
  CONFLICT (content): Merge conflict in src/druglo/common/integrity/webservices/resources.py
  Removing src/druglo/frontend/cityscreen/models.py
  Removing src/druglo/frontend/forms.py
  Removing src/druglo/frontend/mainscreen/models.py
  Removing src/druglo/frontend/models.py
  CONFLICT (directory/file): There is a directory with name doc in Temporary merge branch 1. Adding doc as doc~Temporary merge branch 2
BUG: There are unmerged index entries:
BUG: 3 docfatal: Bug in merge-recursive.c

Примечание. Недавно я переместил один из моих каталогов в отдельный подмодуль. Теперь я получаю много конфликтов из-за этого. Кажется, ошибка связана с этим.

Ответы [ 4 ]

3 голосов
/ 20 июля 2011

Это сообщение об ошибке было введено в январе 2010 года , и для облегчения отладки этого случая Junio ​​C. Hamano рекомендует настройки GIT_MERGE_VERBOSITY до 5:

Мы могли бы предложить пользователю установить GIT_MERGE_VERBOSITY на 5 и повторно выполнить объединение в сообщении.
По крайней мере, мы узнаем, какая часть функций process_renames() или process_entry() неправильно обрабатывает необработанные пути, и это может помочь нам диагностировать проблему.

OP julkiewicz отчеты

CONFLICT (directory/file): 
There is a directory with name doc in Temporary merge branch 1. 
Adding doc as doc~Temporary merge branch 2

, что позволило изолировать каталог, вызывающий это сообщение об ошибке.

2 голосов
/ 20 июля 2011

Я только что удалил doc/ (конфликтующая папка) в текущей проверке и повторно запустил объединение.Есть некоторые конфликты, но на этот раз ошибок нет.

0 голосов
/ 12 июля 2019

На всякий случай, если кому-то это поможет, решением было также изменить стратегию:

git merge -s ours

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

0 голосов
/ 17 февраля 2017

Когда я столкнулся с этой ошибкой, у меня сработало обнаружение переименования.

git merge --no-ff -s recursive -X no-renames <branchToMerge>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...