Как я могу скопировать Bitbucket repo в CodeCommit, включая все ветви, но исключая всю историю всех ветвей?
Причина, по которой вы хотите это сделать: наш сервер конфигурации читает из CodeCommit, но источник истины в битбакете. (Причина, по которой мы это делаем, - длинная история.) У нас есть скрипт, который в настоящее время (и успешно) «копирует» репозиторий Bitbucket в CodeCommit. Мы выясняем, можем ли мы улучшить время отклика нашего сервера конфигурации, синхронизируя его с CodeCommit без всякой истории, поэтому, когда ConfigServer выполняет клонирование или выборку, это не занимает много времени (в настоящее время время отклика составляет 15-25 секунд).
Мы надеялись, что сможем просто добавить --depth 1
к нашей команде git clone --mirror
. Однако при отправке зеркального репо в CodeCommit мы получаем ошибку. Чтобы увидеть, была ли это просто проблема CodeCommit, я попытался сделать что-то похожее для чтения из bitbucket и pu sh обратно в новый репозиторий bitbucket. Я получил другую, но похожую ошибку.
Вот основные шаги. Это прекрасно работает без --depth 1
:
git clone --mirror --depth 1 ssh://<bitbucket> RepoFolder
cd RepoFolder
git remote add codecommit ssh://<codecommit>
git remote update origin
aws codecommit create-repository --repository-name pvvts_configs-RepoFolder --repository-description 'Synced'
git push --mirror codecommit
Ошибка возникает в последней команде (git push
). Выглядит ошибки как:
удаленный: Неизвестный совершает 2280a0e659a1232a402041c27d94d81fd5142edberror: распаковка неуспешно: Неизвестный совершает 2280a0e659a1232a402041c27d94d81fd5142edb
Вслед за ошибки, такие как следующие для каждой ветви:
[удаленный отклонен] dev -> dev (ошибка распаковщика)
Если я попытаюсь сделать что-то подобное, кроме нажатия обратно на bitbucket , я получу следующее ошибка. (Я пропускаю шаг aws create-repository и вместо этого вручную сначала создаю новое хранилище в bitbucket.)
ошибка: не удалось прочитать 6b0189279671f3a8c7b190dbc8d7ec91c0bb808a в s sh: // git@bitbucket.pearson.com/pvvts_configs/vtscoreconfigurations_for_testing_only_marnee_1g_copy.git ! [удалено отклонено] dev -> dev (мелкое обновление не разрешено)
Я читал, что теперь вы можете использовать pu sh с мелкой синхронизацией c с Git 1.9 или более поздней версией. У меня git версия 2.7.4. (См. Этот ответ на вопрос здесь: { ссылка }.) Однако, возможно, ограничение на толкание от мелкого син c было снято с обычного клона, но не с mirror
.
Есть ли способ сделать этот мелкий син c? Есть ли какой-то другой способ выполнить sh мою цель по уменьшению размера копируемого репо в CodeCommit? (Обратите внимание, что на самом сервере конфигурации есть опция, позволяющая ему выполнить мелкое клонирование.)
(Я понимаю, что даже если я смогу успешно выполнить этот "мелкий син c", этот сервер конфигурации может не воспроизводиться хорошо с этим, и это может не дать улучшения производительности, которого мы хотим. Тестирование, которое будет следующим шагом.)