2009-11-11 4 views
1

Примечание: мой код написан во Flash, но это проблема, связанная с SVN, и не является специфичной для флэш-памяти.Код ветвления для разных платформ в SVN

У меня есть библиотека кода, предназначенная для Flash Player 9, хранящаяся в репозитории SVN. Я хочу создать модифицированную версию кода, предназначенного для Flash Player 10.

Каковы наилучшие методы для поддержки обеих версий кода? Должен ли я создать ветку для версии FP10 и поддерживать ее отдельно или есть какой-либо другой предпочтительный метод? В идеале, я хотел бы иметь возможность исправлять общие ошибки для обеих кодовых баз одновременно.

ответ

3

Вы правы ... для этого используется ветвление. Если вы сделаете исправление в одном филиале, вы можете применить его к другой ветке, используя svn merge.

Пример:

 
svn checkout svn://path/to/fp9branch workingCopy 
cd workingCopy 
# make a fix 
svn commit --message "Fixed bug with the frobbitz." 
# Committed revision 42. 
svn switch svn://path/to/fp10branch 
svn merge --change 42 svn://path/to/fp9branch 

Теперь вы применили затруднительное к fp10branch и вы можете

 
svn commit --message "Fixed frobbitz bug for FP10." 
+0

красиво выраженный ответ - спасибо. –

1

альтернативный способ заключается в использовании :: метод CONFIG, он работает как #if определенной() в C/C++

Однако вам нужно будет вручную добавить этот параметр компиляции в строку компиляции. Если нет, это приводит к ошибке компиляции (неспособность распознать тег)

Используя этот метод, вам не нужно создавать ветку в SVN.

Дополнительную информацию см. В документации по Flex.

private static function SomeFunc():void { 
    CONFIG::DEBUG { 
     // do something here if CONFIG::DEBUG is defined during compilation 
     trace("hello"); 
    } 

} 
+0

Я думаю, что могу сделать это, потому что я использую ant для создания SWC, и было бы легко добавить это. –

Смежные вопросы