Git масштабируется одинаково, если я использую ветки вместо ревизий? - PullRequest
1 голос
/ 07 ноября 2011

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

Так что я хочу использовать Git со многими ветками вместо обычных ревизий. Для каждой «версии» моих данных будет ветка.

Изменится только несколько файлов на ветку, и будет 1-10 ревизий на ветку, в зависимости от того, как часто должна изменяться определенная ревизия.

Таким образом, загрузка файла / данных была бы почти нормальной, у меня было бы только много ветвей вместо ревизий.

Я знаю, что это странный способ использовать Git, но будет ли он масштабироваться?

Дбырн попросил использовать случай. Я не уверен, если поможет, но вот оно:

  • Планирую версию Бродяга метаданные
  • У меня есть какой-то проект в отдельном SCM (например, SVN), и каждая ревизия принадлежит Vagrant VM
  • Каждая виртуальная машина Vagrant имеет метаданные и установочные файлы, которые часто совпадают для многих ревизий
  • Иногда мне нужно изменить метаданные и мне нужно поддерживать ветки моего проекта, поэтому я хотел использовать ветки Git для каждой ревизии
  • Мое приложение будет отслеживать изменения проекта и метаданные Git
  • Мое приложение будет проверять соответствующие файлы для каждой версии проекта
  • С помощью метаданных можно автоматически создать виртуальную машину для каждой ревизии проекта

Ответы [ 3 ]

1 голос
/ 07 ноября 2011

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

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

0 голосов
/ 07 ноября 2011

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

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

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

0 голосов
/ 07 ноября 2011

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

Мне всегда говорили, что Git предназначен для интенсивного использования веток (это главная точка продажи IMO), так что да, он должен масштабироваться.

HTH

Пол

...