Я разрабатываю серию приложений для мобильных устройств, назовем их Orange, Cherry и Pear.Теперь, из-за моего знакомства с Blackberry, я решил начать реализацию первого из этих трех приложений Orange на платформе Blackberry.Я нашел способ интегрировать несколько платформ Blackberry (поскольку они используют относительно один и тот же API в разных операционных системах BB, за некоторыми исключениями) в одну кодовую базу.В настоящее время моя кодовая база выглядит примерно так:
Orange/
trunk/
src/
... orange's source tree...
branches/
1.0/
... orange's source tree as it looked at release 1.0 ...
tags/
1.0.0/
1.1.0/
Итак, в основном, я использую методологию на основе версий для своего ветвления.Однако теперь мы хотим перенести это приложение на платформу Android (и, возможно, в какой-то момент, возможно, на другие мобильные или даже настольные платформы).Итак, мой вопрос: каков наилучший метод для разветвления одного приложения на нескольких платформах?Я прочитал Стратегии ветвления , а также ряд веб-страниц по стратегии ветвления (например, http://www.codinghorror.com/blog/2007/10/software-branching-and-parallel-universes.html), но я все еще не убежден в ветвлении, основанном на наличии "общего" ствола (например, какописан в последней ссылке как «Филиал на технологию»).
Причина, по которой я не уверен, заключается в том, что я верю в стратегию ветвления на основе версий.Это кажется логичным;если вы хотите поддерживать отдельные этапы разработки, тогда ветки кажутся идеальным способом сделать это.Если у меня есть аспекты кода, которые являются «общими» для всех трех платформ, тогда я решаю сделать выпуск для Android. Должен ли я разветвлять весь код из общих стволов и линий Android для создания нового тега выпуска?Или я оставляю весь код в «обычной» ветке в ветвях android и blackberry?
Я подумал, что, возможно, еще одна вещь, которую я мог бы сделать, - это создать отдельные проекты, например, orange-ежевика и апельсин-андроид.Однако это может загромождать мой репозиторий SVN, поскольку все наши проекты хранятся в одном репозитории.Так что неизбежно у меня будет оранжево-ежевичный, оранжево-андроидный, вишнево-андроидный, вишнево-ежевичный, грушево-андроидный, грушево-ежевичный, а также ряд папок проекта для любого другого приложения, которое я создаю.
Итак, я ищу отзывы о том, что может быть лучшим способом справиться со всем этим хаосом.Кроме того, если бы вы могли добавить некоторые идеи относительно логистики перехода от моей текущей реализации к более новой (то есть, какие команды SVN я должен использовать для ведения истории), это было бы очень полезно.