2009-10-08 12 views
32

Mi amigo y yo usando el generador de flex (basado en eclipse) con subclipse para un proyecto.Resolución de conflictos de subclipse

Antes de comprometerme Siempre actualizo, pero a veces no pude comprometerme debido a conflictos. Luego uso Team-> Synchronize with Repository y muestra en el lado derecho la última del repositorio y en el lado izquierdo la copia de trabajo actual. Tiene un botón para copiar desde todos los no conflictos de derecha a izquierda (desde el último repositorio hasta mi copia de trabajo). Pero todavía hay líneas conflictivas.

A veces solo quiero copiar de izquierda a derecha, pero no hay ningún botón para eso (me refiero a sobreescribir líneas de archivos de repositorio con mis líneas). Después de copiar partes no conflictivas de derecha a izquierda, solo quiero comprometerme con el lado izquierdo (quiero sobrescribir y enviar mi archivo final al repositorio). No puedo comprometerme debido a estos problemas de conflicto. Entonces mi amigo puede usar el comando Reemplazar con-> Lo último del repositorio para obtener la última versión sobreescrita.

La documentación de Subclipse es débil No pude encontrar ninguna buena guía en Internet. ¿Podrías explicar la resolución de conflictos del subclipse paso a paso para un muñeco como yo? Un video que muestre los pasos, o una tecnología alienígena para arreglarlo rápidamente estará bien. ¿Hay alguna solución mejor (más fácil) para el control de fuente para eclipse?

(yo uso Subclipse 1.4)

+5

a veces el eclipse del ecosistema me vuelve loco. – smartnut007

+1

@Gok: Creo que hay buenas noticias: subclipse por fin hace que funcione "resuelto por mine/theirs/...". La mala noticia es que el diálogo solo aparece después de hacer clic en "Marcar como resuelto" (¡Ya solucioné todos los conflictos a mano antes!) –

Respuesta

53

Sí, tiene usted razón. No hay un botón para eso. en la vista Diff (vista de lado a lado) los elementos en rojo están en conflicto. No pueden fusionarse automáticamente. Debe revisar el elemento en conflicto y resolverlo manualmente copiando/editando el bloque de código que está en conflicto.

Después de comprometerse o actualizar desde el repositorio (Sincronizar con el repositorio), verá en la vista de la consola que algunos elementos están en conflicto. Al echar un vistazo a ese archivo en el paquete verá 3 archivos justo al lado de su archivo original:

myfile.txt (original file) 
myfile.txt.mine 
myfile.txt.r3293 
myfile.txt.r3501 

Haga clic con el archivo original a continuación, seleccione Equipo -> Editar conflicto. En la vista Diff proporcionada, edite el archivo en el lado izquierdo para que coincida con el resultado final que desea. (es decir, es posible que desee conservar algunos de sus cambios y copiar nuevas actualizaciones de la revisión en SVN, descartar todos los cambios y solo conservar sus cambios, etc.) Después de que haya terminado, guarde el archivo. Haga clic derecho en su archivo original nuevamente y luego seleccione Equipo -> Marcar Resovled.

Verá que los archivos de adición 3 desaparecen. Ahora puede comprometer su trabajo "de manera segura".

No hay una manera fácil de hacerlo, ya que SVN no puede decidir cuál es la mejor opción cuando surge un conflicto.

+5

SVN no necesita decidir en este caso, OP quiere pedir explícitamente que anule todo actualizaciones remotas con las suyas. Ver el mío completo aquí: http://svnbook.spears.at/nightly/en/svn.ref.svn.c.resolve.html subclipse realmente debería tener esto. –

+0

@Sequoia, me disculpo por la pregunta de novato, pero estoy confundido por la publicación. Parece que esta característica ya está comprometida y verificada en las versiones nocturnas de SVN. Entonces, ¿eso significa que en una próxima versión (1.7.7? 1.8?) Estará disponible? ¡Sería genial tener resolución/copia de trabajo! ¡gracias! – AnneTheAgile

+0

Tenga en cuenta que, además de resolver conflictos, deberá combinar los cambios no conflictivos de derecha a izquierda también. Y, después de hacer clic en "Equipo-> Marcar como resuelto", seleccione "Conflictos resueltos en el archivo" si ha editado manualmente como lo sugiere la respuesta anterior. – Madbreaks

11

Sé que este hilo es viejo, pero si alguien está buscando una respuesta actualizada, mi experiencia puede ayudar.
Estoy usando subclipse 1.8. Al hacer clic con el botón derecho en el archivo original y seleccionar "Marcar como resuelto ...", tendrá varias opciones, entre otras, tomar el archivo local o el archivo base como la versión correcta. Puede ahorrar tiempo con estas opciones.

4

No puedo encontrar "Marca resuelta", así que en su lugar hice clic en "Marcar como fusionado" después de eliminar manualmente los archivos generados.

+0

Esto parece hacer lo mismo. – otajor

0

seguir los siguientes pasos:

  • Copie sus últimas actualizaciones de trabajo a un lugar seguro.

  • Seleccione el archivo que tiene conflictos ... haga clic con el botón derecho> seleccione reemplazar con >> Seleccione Último del repositorio.

  • Luego, regrese a su copia de trabajo guardada y reemplace manualmente el contenido actual del archivo (que se sobrescribió en el paso anterior) con el suyo.

  • Luego, desde el equipo, seleccione Confirmar ... De esta forma, los conflictos deben resolverse y debe guardar sus últimas actualizaciones en el repositorio SVN.

Cuestiones relacionadas