Я импортировал большой репо с использованием ГИТ-p4, и обнаружил, что у меня есть какие-то странно в смешанном регистре имен файлов, например:git-p4 cloned repo содержит смешанное имя файла - как исправить?
dirA/DIRb/file1.txt
, а затем другие файлы, как так:
DIRa/dirB/FILE2.txt
и так далее , Они попадают в репо таким образом, потому что git-p4 использует быстрый импорт. Это заставляет Git загадочно утверждать, что есть невоспроизводимые каталоги, которые определенно не отслеживаются, и в них нет новых файлов. Я обнаружил, читая этот вопрос:
и, в частности ответ slayerIQ, в том, что это может быть исправлено путем переименования директорий в вопросе иметь дело соответствия. И действительно, в некоторых случаях, когда файлы имели только один формат, это фиксировало это. Но для перемешанных, как я упоминал выше, он ничего не делает. Такого рода предложения подтверждает мои подозрения в отношении дела:
git ls-tree --name-only -r branch
Я рассматривал возможность использования истории перезаписи, чтобы попытаться это исправить, но это кажется ужасно тяжеловес, и я немного колеблющимся, чтобы пойти туда, если я не должен (дерево - ~ 25K файлов). С другой стороны, я делаю «git status» на чистом дереве и получаю список из примерно 35 «необработанных» путей. Так что это нечестно.
Я могу сделать клон git-p4 с нуля, если нужно, но я подозреваю, что смешанные пути к нему поступают от Perforce. У SmartGit нет этой проблемы с деревом, и копирование точного дерева в новое репо прекрасно работает (поскольку оно добавлено правильно).
Любые идеи о том, как действовать?
Спасибо :)
Я считаю, что это ошибка в git-p4. Я попытался исправить это здесь: https://github.com/larsxschneider/ git/commit/75d75def99ad4d260cb45d402e0e7a2dde4b8e28 Я предложил исправление в список рассылки git. Я обновлю этот ответ, когда исправление будет принято. –