Существует ли верхний предел количества коммитов, которые может обработать git-репозиторий? - PullRequest
13 голосов
/ 07 сентября 2011

Мне интересно, есть ли верхний предел для количества коммитов, которые может обрабатывать репозиторий git.

В сольном проекте, над которым я сейчас работаю, я кодировал локально, вносил / отправлял изменения в git, а затем извлекал изменения на моем сервере разработки.

Я рассматриваю это как более простую альтернативу локальной работе и загрузке изменений через FTP ... К счастью / к сожалению, это такой простой рабочий процесс, что я иногда прохожу через много редактировать / фиксировать / пушить / тянуть / браузер -обновление циклов при кодировании.

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

Ответы [ 3 ]

14 голосов
/ 07 сентября 2011

Что ж, «верхний предел», вероятно, будет точкой, в которой происходит столкновение SHA1, но, поскольку SHA имеют длину 40 шестнадцатеричных цифр (16 ^ 40 ~ 1,4x10 ^ 48 возможностей), это настолько близко к нулевой вероятности, что это даже не смешно. Таким образом, вероятность того, что у вас возникнут проблемы, по крайней мере, в течение следующих нескольких тысячелетий будет примерно нулевой.

Гиперболический пример (просто для удовольствия): 1 коммит / минута (просто изменение одного файла -> три новых используемых SHA (файл, коммит, дерево) = 3 новых использованных шаса / минута = ... = 1,6 млн. Используемых шасов / год = 1,6 млрд. шахов / тысячелетий = 1x10 ^ -37 % используется каждое тысячелетие ... (при 1000 файлах / коммит / мин, это все еще 3,6x10 ^ -35%)

При этом, если вы хотите очистить свою историю, возможно, лучшим решением будет раздавить их с ребазой. Просто убедитесь, что вы понимаете последствия, если вы вообще делитесь репо публично.

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

5 голосов
/ 07 сентября 2011

Я уверен, что вам не о чем беспокоиться:)

Git использует хэш SHA-1 для проверки файлов, вероятность возникновения конфликта хеша близка к нулю. Так что веселись !!

Я лично делал около 30 коммитов в день без проблем.

Но избегайте контроля версий двоичных файлов :) Это действительно тяжело для того, что есть.

3 голосов
/ 07 сентября 2011

Я думаю, что количество коммитов, которое может обработать git, не ограничено, только то, что вы можете переварить лично. С более крупными проектами и несколькими разработчиками вы увидите больше активности, чем когда-либо сами.

Вы можете сохранить вторичную ветку, к которой вы будете присоединяться каждую неделю, но git никогда не будет заботиться о том, сколько у вас коммитов. Сходите с ума, пока вы можете понять, что вы делаете. Вы всегда можете различить несколько коммитов назад или использовать такие инструменты, как bisect, чтобы выяснить проблемы истории.

...