Использование контроля версий для поддержания актуальности нескольких веток кода - PullRequest
2 голосов
/ 01 февраля 2012

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

Я являюсь частью команды разработчиков из двух человек, занимающейся портированием и обслуживанием заказной системы CMS. Мы стремимся сохранить "стабильную" ветвь, и у каждой из них есть свои собственные ветки разработчика по мере необходимости.

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

  • Есть ли способ гарантировать, что эти филиалы клиентов всегда будут автоматически переведены на самую последнюю версию изменений?

  • Можем ли мы исключить передачу определенных файлов (например, * .css) в ветви клиента после начальной операции ветвления?

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

Я нашел несколько вопросов, которые, кажется, дают хороший совет

Извините, если я приду к этому задом наперед, но все предложения будут оценены.

1 Ответ

3 голосов
/ 01 февраля 2012
  • Есть ли способ гарантировать, что эти филиалы клиентов всегда автоматически переносятся на самый последний набор изменений?

Это можно сделать, перейдя в филиал, извлечение из стабильного и объединение.

  • Можем ли мы исключить передачу определенных файлов (например, * .css) в ветви клиента после начальной операции ветвления?

Нет, такие файлы не исключаются при слиянии.Вместо этого вы должны структурировать свои файлы так, чтобы у вас был базовый файл - назовите его base.css - и затем у вас будет client.css, который является дополнительной таблицей стилей.Таким образом, вы можете переопределять вещи из base.css в client.css по мере необходимости и , когда вы объединяетесь со своей стабильной веткой, вы получаете последнюю версию base.css.

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

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

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

...