#git #mercurial #atlassian-sourcetree
#git #mercurial #atlassian-sourcetree
Вопрос:
Наш репозиторий BitBucket вырос до более чем 3 гигабайт, и теперь, когда я пытаюсь клонировать в SourceTree, все, что я получаю, это символ попытки подключения. Когда я пытаюсь в Tortoise, он клонируется до определенной точки, а затем отключается, говоря, что ожидал # байт, но получил #.
Я не могу загрузить ZIP-файл с BitBucket, потому что он слишком большой. Что я могу сделать для клонирования?
Комментарии:
1. Я столкнулся с этой проблемой, используя TeamCity и TortoiseHg. Я получил сообщение, о котором упоминает Брэд. Я действительно не хотел выполнять частичное извлечение, чтобы устранить проблему на случай, если TC когда-либо удалит папку и попытается повторно извлечь. Я смог обойти проблему, переключившись на SSH, хотя у этого были свои проблемы. Мой репозиторий был меньше 500 МБ, но это был этот симптом. Возможно, что-то еще вызывало тайм-аут, но это было довольно раздражающе, особенно с репозиторием, который я не считал таким уж массивным.
Ответ №1:
Клонируйте в старую ревизию, используя hg clone -r <revision>
, и извлеките остальное. Вы также можете постепенно извлекать, если это необходимо.
Комментарии:
1. Я знаком только с Sourcetree, как мне запускать команды терминала? Нужно ли мне устанавливать что-то еще?
2. Я не знаю SourceTree, но это может быть опция, которую вы можете установить при клонировании. В противном случае проверьте эту ссылку: answers.atlassian.com/questions/54473 /…
Ответ №2:
Я также столкнулся с этой проблемой с очень большим, многогигабайтным репозиторием, который хранился на BitBucket. Если бы я попытался просто клонировать весь репозиторий, он всегда прерывался бы в середине «добавления изменений в файл». Если вы используете TortoiseHg, сообщение об ошибке напоминает «прервать: поток неожиданно завершился (получено ##### байт, ожидается ######)»
Решение состоит в том, чтобы «запустить вечеринку», клонируя только первые несколько сотен проверок, а затем постепенно загружая больше ревизий с помощью команды Mercurial pull
.
Вот командная строка:
hg clone -r 500 https://Someone@bitbucket.org/MyCompany/MyRepoName MyDevFolder
Это приведет к клонированию первых 500 ревизий ( -r 500
) репозитория с именем MyRepoName
, а затем скопирует их в новую папку с именем MyDevFolder
. (Вы можете, конечно, опустить «MyDevFolder», и он просто создаст новую папку на основе имени вашего репозитория)
Если вышеуказанное выполнено успешно, перейдите в новую папку разработки и попытайтесь постепенно обновлять до более высоких номеров версий.
cd MyDevFolder
hg pull -r 1000
hg pull -r 2000
hg pull -r 3000
...
hg pull -r [Whatever the maximum number of revisions is]
hg pull
hg update
В качестве меры предосторожности ближе к концу процесса вы должны выпустить простой hg pull
, чтобы убедиться, что вы извлекли весь код целиком.
hg update
Конечно, файлы в вашем будут обновлены, MyDevFolder
чтобы отразить самую последнюю доступную версию исходного кода.
Комментарии:
1. Вот ошибка, которую я получил. Спасибо за предупреждение.