Подтвердить что ты не робот

Git обратная совместимость репозитория

У меня просто был быстрый вопрос о git - как обратно совместимы репозитории git? Например, я создал репозиторий, используя git 1.6.4 и svn2git ruby ​​script, но я хочу поместить его на машину с Debian Lenny, которая имеет git 1.5.6.5. Смогу ли я по-прежнему правильно взаимодействовать с хранилищем?

4b9b3361

Ответ 1

Это чрезвычайно обратная совместимость с точки зрения фактического хранения информации, и это все, о чем вы беспокоитесь в этом случае. Я не полный эксперт, но я сомневаюсь, что это изменилось со времени первого стабильного выпуска.

Единственная проблема совместимости, которую я могу придумать, заключается в том, что две версии git работают с одним и тем же репо (не клоны), и есть опции/алиасы, установленные в .git/config, которые работают в более новой версии, но не были [полностью] реализованы в старой версии... но даже тогда вам придется очень стараться с близкими версиями. И опять же, это не имеет никакого отношения к фактической информации в репо, просто к командам, которые вы используете для ее управления. То, где происходит развитие git.

Ответ 2

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

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

Некоторые (возможно, все) этих несовместимых изменений:

  • поддержка подмодулей: git версия до того, как поддержка субмодуля была введена в git, ядро ​​не сможет обрабатывать репозиторий, который использует подмодули (он не понимает записи поддерева/записи gitlink)
  • упакованные refs: старая версия git не сможет получить через HTTP из более нового репозитория, который использует упакованные refs (.git/packed-refs). То же самое со старым git с использованием того же репозитория, что и новый git, который имеет упакованные ссылки
  • offset delta packfiles: old git не понимает более новую (более компактную) версию git packfile (of-delta). Это не проблема для извлечения и нажатия, так как есть обнаружение функций поддержки клиентов сервером.

Ничего из этого не было между 1.6.4 и 1.5.6, я думаю.