Невозможно выполнить svn rebase после миграции git lfs - PullRequest
0 голосов
/ 01 марта 2019

Я переносил кодовую базу Subversion в Git.Все прошло хорошо, и я git svn clone(d) сделал репозиторий, а затем git lfs migrate(d) большие и двоичные файлы.Репозиторий выглядит хорошо со стороны Git, но сейчас я не могу git svn rebase ...

$ git svn rebase Unable to determine upstream SVN information from working tree history $

Я пробовал различные предложения из Интернета по решению этой проблемы, но, похоже, онине имеют никакого эффекта.Какие-либо предложения?Могу ли я сбросить информацию о Subversion / Git?Должен ли я иметь git lfs install(ed) перед выполнением git lfs clone?

1 Ответ

0 голосов
/ 28 июня 2019

Причина, по которой индекс git svn нарушается при использовании git lfs import, заключается в том, что последний переписывает историю репозитория Git (если не указан параметр --no-rewrite).

При использованииопция --no-rewrite жизнеспособна для вас (то есть вы можете хранить большие файлы в истории Git-репозитория, удаляя их только из будущих коммитов), тогда, возможно, это самый простой способ.

Вкл.с другой стороны, если вы должны хранить эти большие двоичные файлы полностью вне хранилища репозитория, в его истории не должно быть коммитов, которые бы добавляли эти файлы непосредственно в Git.Поэтому вы должны продолжать использовать простой git lfs import, чтобы переписать все коммиты, созданные git svn clone/fetch, и перенаправить эти файлы в LFS.После запуска git lfs import вам нужно будет перегенерировать git-svn rev_map, чтобы сопоставить новые коммиты в переписанной истории Git с ревизиями SVN, которые они отражают.Я не знаю, есть ли простой способ сделать это, но вы можете взглянуть на код в https://github.com/Eloston/git-svn-lfs, чтобы иметь представление.

...