2009-11-11 3 views
1

Note: mon code est écrit en flash mais c'est un problème lié au SVN et n'est pas spécifique au flash.Code de branchement pour différentes plates-formes dans SVN

J'ai une bibliothèque de code ciblée sur Flash Player 9 stockée dans un référentiel SVN. Je souhaite créer une version modifiée du code destiné à Flash Player 10.

Quelles sont les meilleures pratiques pour conserver les deux versions du code? Devrais-je créer une branche pour la version FP10 et maintenir les deux séparément ou existe-t-il une autre méthode préférée? Idéalement, j'aimerais pouvoir corriger des bogues communs pour les deux bases de code simultanément.

Répondre

3

Vous avez raison ... c'est pour cela que les branches sont utilisées. Si vous faites un correctif dans une branche, vous pouvez l'appliquer à l'autre branche en utilisant svn merge.

Exemple:

 
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 

Maintenant que vous avez appliqué le correctif à la méthode alternative fp10branch et vous pouvez

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

bien exprimé réponse - merci. –

1

est d'utiliser la méthode :: CONFIG, il fonctionne comme #if defined() en C/C++

Cependant, vous devrez ajouter manuellement cette option de compilation dans la ligne de compilation. Sinon, il en résulte une erreur de compilation (impossible de reconnaître l'étiquette)

En utilisant cette méthode, vous n'avez pas besoin de créer une branche dans SVN.

Consultez la documentation Flex pour plus d'informations.

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

} 
+0

Je pense que je peux le faire parce que j'utilise ant pour construire le SWC et il serait facile d'ajouter ceci. –

Questions connexes