Стратегия ветвления в Subversion с мобильными релизами - PullRequest
1 голос
/ 05 октября 2010

Я разрабатываю серию приложений для мобильных устройств, назовем их 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 я должен использовать для ведения истории), это было бы очень полезно.

1 Ответ

4 голосов
/ 05 октября 2010

Код Java BlackBerry - j2me, поэтому исходный код должен быть совместимым с Java 1.3.Android может использовать функции Java вплоть до Java 6. Если вы хотите, чтобы ваше приложение выглядело прилично, вы будете использовать собственные компоненты пользовательского интерфейса RIM (net.rim.device. *), Которые не будут доступны на Android.

Я бы не считал версию приложения для Android ответвлением от BlackBerry.Вы должны просто начать с нуля.Платформы будут совместно использовать очень мало кода, и код, который можно передать, лучше всего будет объединить в библиотечную флягу, в которую включены оба проекта.

...