Неполные данные: источник Delta неожиданно закончился, а git svn fetch

Я клонировал свой svn repo в git, и каждый день я делаю git svn fetch (я только делаю изменения в SVN), но я планирую перейти на git, и я сохраняю репозиторий git синхронизация за день, так как клон svn взял меня на 2 недели (да, это большое репо).

В любом случае git svn fetch работал нормально каждый день до 2 дней назад, где я теперь получаю

Incomplete data: Delta source ended unexpectedly at /usr/lib/perl5/site_perl/Git/SVN/Ra.pm line 290

при конкретной ревизии. Я попробовал различные предложения в Интернете о git svn reset и возвратил некоторые изменения, и я вернулся с 20 версиями обратно без везения. Я также попытался запустить:

git config --get core.autocrlf

который дал true.

Я знаю, что svn repo работает хорошо, у меня нет проблем с svn up.

Любые идеи, как я могу снова вернуться к синхронизации? Я застрял без идей, что попробовать.

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

/donnib

Ответы

Ответ 1

  • Убедитесь, что нет дополнительных процессов git/perl (которые могут создать файл index.lock и испортить текущую выборку). Убейте всех.
  • Удалите файл ...\my_repository.git \.git\svn\refs\remotes\trunk\index.lock.
  • git svn reset -r SomeSVNRevisionNumberBeforeTheProblematicOne
  • git svn fetch

Извлечение должно продолжаться с SomeSVNRevisionNumberBeforeTheProblematicOne.

Наиболее вероятная причина, по которой это произошло, - это concurrency между двумя экземплярами git, запущенными одновременно в одном репозитории.

Ответ 2

--ignore-paths использовать --ignore-paths, поэтому выполните следующие шаги:

  1. git svn reset -r <svn-version-before-error>
  2. git svn fetch --ignore-paths=/branches/badbranch