Использование VCS для "Lite" и "Full" версий? - PullRequest
0 голосов
/ 17 февраля 2011

Привет, ребята.У меня есть приложение в Objective C (с использованием xcode), которое я хотел бы разделить на две разные версии - облегченную и полную.Будет ли работать VCS (т.е. GIT или SVN), если я разветвлю основной проект?Я не знаком с тем, как работает разветвление, но будут ли какие-либо изменения, внесенные мной в основной проект, объединены с разветвленным облегченным проектом?

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

Ответы [ 2 ]

4 голосов
/ 17 февраля 2011

Практически все VCS поддерживают ветвления, которые вы можете использовать для «ароматизации» вашего продукта. Но будьте осторожны, многое зависит от того, как вы реализуете изменения на уровне файлов. Лично я бы не использовал VCS для ароматизаторов. Конфигурация на уровне приложения или сборки в основном проще поддерживать.

Но вот два примера того, как все может получиться.

Пример для легкой ароматизации:

branch-full
- module 1
- module 2
- module 3
- module 4
- documentation-full

branch-lite
- module 1
- module 2
- purchase-module
- documentation-lite

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

Пример сложного ароматизации (анти-паттерн) (один исходный файл в ветке lite)

my generic code ...
...
...

my lite-specific code ...
...
...    

my generic code ...
...
...

Если вы столкнулись с ошибкой в ​​ОБЩЕМ коде, но только внутри вашей lite-ветви (поскольку ошибка может быть как-то связана с вашей lite-функциональностью), вам придется исправить и зафиксировать ее в lite-ветви. Вам нужно будет либо объединить (и сделать совместимым с полной версией) свое единственное исправление, либо вообще не сливать его с полной версией. Более поздняя опция со временем увеличивает «разрыв» между вашей облегченной и полной версией, что, в свою очередь, затрудняет получение обновлений от «полной версии» в случае более крупных разработок на этой стороне.

C

1 голос
/ 17 февраля 2011

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

SVN сливается довольно легко.Разрешение конфликтов довольно просто.

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

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