2010-04-07 17 views
8

Nuestro equipo de desarrollo utiliza Eclipse + Aptana para realizar su trabajo de desarrollo web. Actualmente, la mayoría de ellos están mapeando sus proyectos de Eclipse directamente en el servidor web. Prefiero que creen un proyecto local y lo usen para sincronizar con el directorio del proyecto del servidor web en el que están trabajando.Soluciones de sincronización de archivos Eclipse/Aptana

El problema es que no hay ninguna buena solución que es simplemente terrible dada la popularidad de los dos.

El complemento FileSync para Eclipse es solo de una sola dirección. Es decir, si otro desarrollador realiza un cambio en el archivo en el servidor, otro desarrollador ni siquiera se le notifica y podría sobrescribir el cambio.

La opción de Transferencia de archivos en Aptana 2.0 no es compatible con ningún tipo de sincronización, simplemente cargando/descargando archivos manualmente.

La opción Sincronizar en Aptana 1.5.1 no le permite fusionar archivos cuando son diferentes. Solo puedes actualizar uno o el otro. Sin embargo, le permite ver un diff (pero solo si hace clic derecho y selecciona) y en esa diferencia no puede hacer ningún cambio.

Encontré una forma de permitir que los archivos se carguen en sus repositorios de sincronización en Aptana usando Eclipse Monkey. Sin embargo, no funciona si un usuario guarda varios archivos a la vez, 'Guardar todo', de nuevo, no funciona. Y, además, no hay notificación si un usuario abre un archivo local que tiene una copia actualizada en el servidor. Traté de agregar uno usando Eclipse Monkey, pero no pude encontrar ningún tipo de oyente en la API de Eclipse para hacerlo y cualquier documentación de Eclipse Monkey es muy escasa.

Mi única solución en este momento es permitirles seguir mapeando directamente al servidor o pedirles que hagan una descarga manual antes de que hagan algún trabajo (pero otra vez, ¿qué pasa si alguien carga un cambio justo después de hacerlo?) .

¿Alguien tiene alguna idea?

Respuesta

4

de abril de 2010

Añadir EGit a la configuración de Eclipse + Aptana, y:

  • permitir a los desarrolladores de inserción a una local bare repo sus desarrollos (véase también this post)
  • vamos a ser su proyecto local actualizado por git pull desde ese mismo repositorio local (creación/actualización) de un directorio de trabajo local con fuentes fusionadas/actualizadas (o mediante el uso de un enlace posterior a la actualización como se describe en my previous SO link)
  • deje que su Aptana + Eclipse local (+ EGit) haga referencia a ese directorio de trabajo local, también usado por su servidor web.

En resumen, cuando se está hablando de la sincronización de archivos + fusiones, este es un trabajo para una (D) VCS (Version Control System: Centralized o Distributed VCS)


Oct 2011: como xmedeko menciones en los comentarios, Aptana3 tienen su propio Git plugin.
Y no es muy compatible con EGit: Consulte bug 1988.

+0

Actualización: Aptana 3 tiene su propio plugin de Git. En mi humilde opinión mejor que EGit. – xmedeko

+0

@xmedeko: buen punto. He editado la respuesta para reflejar ese plugin nativo de git. – VonC

1

Agregando a la respuesta VonC (que es correcta en mi humilde opinión), lo que probablemente se encuentra debajo de este escenario es que el proceso que adoptó no es correcto en sí mismo, además de las herramientas utilizadas.

Si lo entendí bien, no debe permitir ni realizar una carga directa desde una versión de desarrollo del proyecto al servidor web. La fusión no es un trabajo para las herramientas de sincronización remota, y debería suceder mucho antes de la fase de implementación (la carga al servidor web es prácticamente una implementación).

Debe tener un repositorio dedicado tomado de algún punto en el historial de desarrollo (de acuerdo con la línea de tiempo del lanzamiento), un punto donde la fusión ya ha sucedido. A continuación, impleméntelo (mediante la sincronización de archivos, si así lo desea, pero eso no es obligatorio) en un servidor web local/de etapas.

Realice allí cualquier prueba que ejecute en el sitio web activamente en ejecución (es decir, pruebas de integración y/o funcionales). Si hay algún error & arreglando, bien, hay diferentes maneras de aplicar realmente las correcciones en el desarrollo & repositorio de código provisional. Solo después de eso, implementa el repositorio provisional en el servidor web de producción (una vez más, las herramientas de sincronización son una manera de hacerlo).

Cuestiones relacionadas