Как вы управляете большими репозиториями git? - PullRequest
6 голосов
/ 28 июля 2011

Один из наших git-репозиториев достаточно велик, чтобы git-клон занимал много времени (более нескольких минут). Каталог .git ~ 800M. Клонирование всегда происходит на 100 Мбит / с через SSH. Даже клонирование по ssh на localhost занимает больше нескольких минут.

Да, мы храним данные и двоичные двоичные объекты в хранилище.

Если не считать их, есть ли другой способ сделать это быстрее?

Даже если бы мы могли перемещать большие файлы, как мы могли бы это сделать без серьезного перерыва, переписывая историю каждого?

Ответы [ 4 ]

1 голос
/ 28 июля 2011

Я столкнулся с такой же ситуацией с репозиторием ~ 1 ГБ, который нужно было передавать через DSL. Я пошел с часто забытым sneakernet: положил его на флешку и проехал по городу на своей машине. Это не практично в каждой ситуации, но вам действительно нужно сделать это только для первоначального клона. После этого переводы достаточно разумны.

0 голосов
/ 28 июля 2011

Гигабит ... волокно ... Без переписывания истории вы достаточно ограничены.

Вы можете попробовать git gc, это может немного его почистить, но я не уверен, так ли этовсе равно сделано с клоном.

0 голосов
/ 28 июля 2011

Даже если бы мы могли перемещать большие файлы, мы могли бы сделать это без значительных перерывов, переписывая историю каждого?

Проверьте ответ: Будет ли git-rm -кэшированное удаление файлов рабочего дерева другого пользователя, когда они извлекают

Эта мера вместе с добавлением шаблонов в .gitignore должна помочь вам сохранить эти большие файлы.

0 голосов
/ 28 июля 2011

Я вполне уверен, что вы не сможете переместить эти двоичные файлы без переписывания истории.

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

...