Flujo de trabajo adecuado para los novatos en el entorno SVN-IDE

Soy un desarrollador de interacción / desarrollador front-end que hasta ahora ha trabajado en entornos web relativamente básicos y poco estructurados. Normalmente, utilicé Dreamweaver, edité una copy local del sitio, tenía un server de desarrollo remoto y un server de producción. Incluso cuando trabajábamos en un equipo pequeño no éramos sofisticados, no teníamos control de versiones además de algunas funcionalidades básicas de DW.

Ahora estoy en un equipo más sofisticado que trabaja en aplicaciones web. Usamos subversion (y, wow, es muy útil) y todos tienen su propia instancia de desarrollo. He adaptado mi vieja forma de hacer las cosas a este nuevo entorno, así que todavía estoy usando Dreamweaver. Debido a que otros quieren poder ver / modificar mi código incluso antes de registrar las cosas, actualmente tengo un pago de subversión en mi máquina local (usando Tortoise, fácil para mí como novato, y edito en DW) y en mi instancia del server de desarrollo. Así que tengo que hacer las actualizaciones de SVN dos veces para mantenerme sincronizado.

Estoy haciendo suficiente PHP y JavaScript ahora que me di count de que realmente debería cambiar a Netbeans, Eclipse o algún otro IDE más sofisticado. Al mismo time, me gustaría mejorar mi flujo de trabajo.

¿Puede un IDE satisfacer mis necesidades de gestión de subversión? ¿Debo tratar de alejarme por completo de la edición en mi máquina y en su lugar trabajar directamente en mi instancia de desarrollo?

He jugado con Netbeans y estoy inclinado a usar eso, pero me encantaría pensar en eso también. Las personas con las que trabajo ahora como progtwigdores "reales", por lo que he estado haciendo les desconcierta lo suficiente como para que no puedan relacionarse (y me dan buenos consejos).

Personalmente, recomiendo SmartSVN. Es una aplicación independiente y mucho más sofisticada que cualquier otra que haya visto en Eclipse, Komodo, etc. También es gratuita para uso personal. En cuanto a su IDE, es una cuestión de preference, sino de necesidad. Yo diría que primero pruebe con Aptana, está basado en Eclipse y orientado a su línea de trabajo.

Esto es lo que hemos configurado para nuestros equipos de desarrollo:

  • Cada desarrollador tiene su máquina local que es Windows y tiene los repos de SVN desprotegidos.
  • Cada desarrollador tiene una máquina virtual LAMP que coincide con nuestros serveres web de producción.
  • Usamos samba en las VM de LAMP para compartir el directory /var/www y mapear la location de la networking compartida en nuestras máquinas locales.
  • Los desarrolladores editan los files fuente localmente usando Netbeans.
  • Nuestro proyecto Netbeans tiene la opción de copyr cualquier file modificado en una location diferente.

Esto permite que todo permanezca local, todo lo remoto permanece actualizado, y el server remoto no tiene todos los files SVN adicionales.

Inconvenientes:

  • Tiene que actualizar SVN desde Netbeans o los cambios pueden no copyrse en el server remoto.
    • Todavía puede recuperarse de un mal estado del server remoto haciendo una export SVN
    • Sin embargo, no necesitas hacer un commit de SVN de parte de Netbeans. Todavía prefiero TortoiseSVN para esto.
  • Cuando agrega files externos (como desde el Explorador de Windows), como imágenes, debe search Cambios Externos para copyrlos al server remoto.
    • No sé si Netbeans 7.0 resolvió esto, ya que ahora verifica los events del file del sistema operativo.