Как сохранить небольшой размер Mercurial? - PullRequest
4 голосов
/ 20 июля 2010

Мой центральный репозиторий хранится на USB-накопителе емкостью 8 ГБ.Я случайно зафиксировал несколько больших файлов, поэтому хранилище больше не помещается на флешку.Есть ли способ исправить эту ситуацию?

Ответы [ 3 ]

6 голосов
/ 20 июля 2010

Я проголосовал за ответ catchyifyoutry, так как у него есть шаги, которые вы, вероятно, будете использовать, но вот удобный список.

Во-первых, напоминание.Если вы уже запустили этот репозиторий где-то наполовину, и люди вытащили репозиторий, то ни один из приведенных ниже советов не сработает.Когда в следующий раз они нажмут, а вы потянете, вы вернете исходные наборы изменений в неизмененном виде.Ваш единственный выход - поговорить с каждым человеком, у которого есть клон, и попросить его удалить его и повторно клонировать.Тем не менее, в списке:

Способы уничтожения файлов, которые вы передали в результате несчастного случая

  • Если вы еще ничего не извлекли или не совершили: hg rollback будет действовать как один уровень отмены
  • Если вы хотите выбросить последние N ревизий: hg clone -r -N repo-with-too-much repo-with-N-fewer changesets # пример: hg clone -r -2 big-repo small-repo
  • Если ваше изменение было слишком давно длялюбой из них будет в порядке: hg convert --filemap myfilemap.txt too-big-repo new-repo

В последнем случае myfilemap.txt содержит:

exclude path/to/file/to/remove

Примечания:

  • случай clone -r технически запрашивает минимальный клон, который может включать ревизию tip-N, которая, если у вас ветвистое репо.Кроме того, pull -r строк (по одной на голову) потребуется для перетаскивания другой нелинейной истории.
  • с решением hg convert будет изменен хэш-код каждого измененного набора изменений и всех их потомков.
4 голосов
/ 20 июля 2010

Вы можете откатить последний коммит с большими файлами, если коммит действительно случайный. См

hg help rollback

Конечно, это не сработает, если вы тем временем совершаете другие важные вещи. Другой способ - использовать strip для удаления всей ветви, содержащей большие файлы.

Будьте осторожны , прежде чем выполнять какие-либо из этих операций, убедитесь, что вы понимаете, что делаете! Сначала проверьте команды в тестовом репозитории или клоне.

0 голосов
/ 20 июля 2010

Никогда не храните такую ​​важную вещь, как хранилище кода, на USB-накопителе. Это приглашение потерять весь ваш код очень скоро! Купите внешний жесткий диск с достаточным пространством и как минимум 2 отдельных диска внутри, которые вы можете отразить. Храните его постоянно где-нибудь и не носите с собой. Если вам нужен доступ из другого места - используйте безопасное подключение к Интернету для удаленного доступа к жесткому диску.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...