git + Flujo de trabajo de Flash Builder: ¿cómo lo configuro para que git funcione sin problemas?

Estoy usando git para rastrear un proyecto que estoy desarrollando en Flash Builder, y me pregunto cuál es la mejor manera de hacer que lo rastree, especialmente con respecto a los files generados por Flash Builder, los files generados por el comstackdor y los files fuente que no son t necesariamente files flexibles.

Lo configuré para ignorar todos los directorys del constructor flash .project y debugging a través de .gitignore:

.actionScriptProperties .flexProperties .metadata .project .settings bin-debug 

y también tratar cualquier file swf / swc como files binarys a través de .gitattributes

 *.swf -crlf -diff -merge *.swc -crlf -diff -merge 

Un problema con esta configuration es verificar este proyecto y usarlo en Flash Builder desde cero:

A Flash Builder no le gusta cuando tiene una carpeta de proyecto sin los files .project. La única forma de importar la fuente en Flash Builder es:

  1. Crea una nueva aplicación Flex

  2. Sofoque los files de plantilla que creó (específicamente APP_NAME.mxml) con un clon git.

¿Dónde coloco las bibliotecas? Desde una perspectiva git, me gustaría tenerlos en la carpeta lib del repository así que cuando alguien clona el repository, todo funciona, pero desde una perspectiva local del sistema de files me gustaría almacenar todas mis bibliotecas en una sola location y use Flash Builder para hacer reference a ellos, ya que puedo actualizar la biblioteca o download una versión posterior. Tal vez debería poner las bibliotecas en su propio repository y cargarlas como un module de git? De esta manera, no necesito recordar manualmente actualizar mis files de la biblioteca Y en todos los proyectos X que los están usando, editar: simplemente se actualizarán cuando actualice los submodules de cada proyecto.

¿Y qué hay de los modules swfs / flex externos? He estado adjuntando files SWF externos en la carpeta bin-debug por ahora para que la class SWFLoader pueda encontrarlos, pero debido a que estoy "digitando" la carpeta bin-debug, no vienen con el repository cuando se clona.

Un último problema es dónde save los files para el server . ¿Los tengo en un repository separado? Estoy usando php VOs 'con AMFPHP, así que es bueno poder editar los files php junto con mis files actionscript en Flash Builder … pero no pertenecen a la carpeta src del proyecto.

La solución actual que estoy usando es:

  1. Crear una carpeta 'server' en la raíz del proyecto

  2. Señalando un apache virtualhost en él

  3. Establecer la configuration de ejecución / debugging en http: //APP_NAME.localhost

  4. Luego, use la carpeta del server como reemploop de bin-debug cuando los files se exporten

El problema con esto es que tengo un gran lío de files generados por el comstackdor y files fuente que no son AS en la carpeta de mi server . Simplemente no parece una solución elegante.

¿Cómo se configura git para que funcione con flash builder sin problemas? ¿Podría resolverse todo esto con múltiples proyectos git repos / Flash Builder, o un script ANT o algo así?

Gracias.

Normalmente, para proyectos de eclipse con cualquier SCM, inicialmente verifico todo, incluidos .projects, etc., pero tal vez excepto bin-debug en su caso. Luego solo asegúrate de que cualquiera que revise el proyecto nunca vuelva a verificar en esos files .xxx. Por ejemplo, cuando uso forzosamente, primero compruebo los files .xxx en una list de cambios que nunca controlé. Luego reviso el rest en una list de cambios separada.

Otro consejo es utilizar variables de biblioteca definidas por el usuario cuando se trabaja con routes de compilation, etc.

He encontrado una buena solución que evita todo el horror de tener files sin seguimiento y mantener una list masiva de .ignore:

LIMPIE sus proyectos antes de comprometerse.

Simple como eso.

Ya sea por Flash Builder o por ant, debe tener la capacidad de limpiar de todos modos, por lo que si simplemente limpia antes de comprometerse, se resuelve el problema de los files generados. Duh.

De hecho, probablemente podrías configurarlo como un git hook o algo así.