Рабочий процесс для поддержки различных версий веб-приложения с помощью Git? - PullRequest
3 голосов
/ 24 августа 2010

В моей компании мы используем git уже пару месяцев (и мы этому рады), но мы до сих пор не получаем git на все 100%.

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

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

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

Итак, учитываяэта настройка, как ветки могут помочь нам?

master
|
- english
|
- german 
|
- french

(Для пояснения: речь идет не о l10n / i18n, а о разделении основных функций между ветвями)

Ответы [ 2 ]

1 голос
/ 25 августа 2010

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

со связанной страницы:

подмодуль GitПоддержка позволяет хранилищу содержать в качестве подкаталога извлечение внешнего проекта.Подмодули сохраняют свою индивидуальность;поддержка субмодулей просто хранит местоположение хранилища субмодулей и идентификатор фиксации, поэтому другие разработчики, которые клонируют содержащий проект («суперпроект»), могут легко клонировать все субмодули в одной и той же ревизии.Возможны частичные проверки суперпроекта: вы можете указать Git клонировать none, некоторые или все подмодули.

EDIT: Если вы хотите сохранить структуру ветвей, я думаю, вы могли бы создать ловушкускрипт (в .git / hooks /), который проверяет каждую ветвь для конкретного языка и объединяет последний коммит из ветки с общим доступом каждый раз, когда вы его фиксируете.Таким образом, у вас будет общая ветвь и одна ветвь для каждого из языков, и вы в основном сделаете коммиты на общий, и они будут автоматически объединены с другими.Я не думаю, что это звучит как хорошие решения, и я не пробовал.Если вы хотите попробовать, ищите информацию о хуках.Я думаю, что подмодули более естественны.

1 голос
/ 24 августа 2010

другие люди пробовали это и говорят: " всегда грузите ствол "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...