Android Studio: no se puede fusionar desde la twig SVN

Hemos decidido seguir el process de creación de una nueva sucursal de SVN para cada nueva característica que agreguemos a nuestra aplicación mobile. El objective final detrás de esto es preservar el historial para cada cambio de código único (esto no ocurre cuando manualmente copymos las carpetas de proyectos en SVN en lugar de crear y fusionar las twigs).

Mi problema es que, hasta el momento, no puedo fusionar los cambios de una twig a otra.

Ya he mencionado las siguientes publicaciones sin éxito:

  • Cómo fusionar la twig con el tronco usando SVN en el estudio de Android .

  • Proyecto de actualización de Android Studio: Merge vs Rebase vs Branch Default .

  • Cómo fusionar la twig a SVN con el estudio de Android .

  • Cómo fusionar revisiones de svn específicas de una twig a otra en Android Studio 2.0 .

Esto es lo que he intentado hasta ahora:

Tengo dos twigs de características como se puede ver a continuación en Tortoise SVN :

enter image description here

Deseo fusionar los cambios en la twig Feature_A3 en la twig Feature_A2 . Para hacer esto, estoy usando la opción Merge from VCS de Android Studio desde la copy de trabajo A2:

enter image description here

Luego me pide que select la twig para fusionar desde (A3) o configurar otras twigs:

enter image description here

Hago clic en Configurar twigs , solo para mostrarle la configuration de twig existente:

enter image description here

Como puede ver, A2 es el Troncal y A3 es la Rama . ¿Es esto correcto?

Luego me pregunta qué parte de A3 quiero fusionar con A2. Selecciono el directory /src (donde están presentes los cambios relevantes):

enter image description here

Luego generosamente me da tres forms diferentes de realizar la operación de fusión:

enter image description here

Selecciono la tercera opción, ya que me proporciona directamente los cambios que necesito fusionar:

enter image description here

¡Hago clic en Merge Selected y BAM! Me sale este error todo el time:

enter image description here

No hay ninguna pista sobre lo que son los "conflictos no resueltos" o "elementos omitidos". ¿Por qué recibo este error y qué debo hacer para fusionar los cambios en A3 en A2? Puede ayudarme alguien, por favor ? Todas las respuestas serán apreciadas. Gracias …

He estado siguiendo la documentation oficial de Intellij IDEA a continuación:

  • Integración de cambios a / desde twigs de características .

  • Fusionar, eliminar y comparar twigs .

Tenga en count que:

  • Actualmente estoy usando Subversion, no Git.

  • La estructura de directorys de mis copys de trabajo locales no es exactamente idéntica a la de los repositorys SVN. ¿Podría ser esta la causa del error?

LA RESPUESTA …

Gracias a Peter Parker y especialmente a Yoav Aharoni por sus valiosos comentarios. Como Yoav señaló correctamente, de hecho fue la manera en que se especificó la carpeta de sucursales. Tiene que ser la carpeta que contiene las twigs, no las carpetas de las sucursales en sí: Y como dijo correctamente Peter, al marcar "Incluir revisiones fusionadas" se muestra el historial fusionado. Ahora puedo fusionarme desde el propio IDE y ver el historial fusionado en TortoiseSVN. NO línea de command! ¡¡¡HURRA!!!

Sin embargo, un último problema es que no puedo ver el historial fusionado en Android Studio (Intellij IDEA) como se describe en Visualización de fonts de fusión . ¿Alguien sabe cómo lograr esto en Android Studio?

Uff, no he usado SVN en un time … 🙂

Pero por lo que puedo recordar Branch locations deberían ser la carpeta que contiene las carpetas de las sucursales (y no las carpetas de las sucursales individuales).

Como ve, normalmente un repository SVN sigue una convención de nomenclatura estándar y una estructura de carpetas:

 trunk/ branches/ Feature_A2/ Feature_A3/ tags/ v1.01/ v1.02/ and so on... 

trunk es donde tiene lugar el desarrollo principal, y las branches son para características, proyectos a largo ploop o arriesgados, o para diferentes etapas (como QA y pre-prod).

Por lo que recuerdo, Android Studio espera que establezca las Branch locations de las branches carpeta de branches . En tu caso, creo que debería ser http://192.168.0.64/svn/.../Android/Feature .

Además, su trunk no es Feature_A2 – Feature_A2 es simplemente otra twig.
Aunque no puedo ver el contenido, creo que http://192.168.0.64/svn/.../Android/Development podría ser tu baúl.

Lo cual no debería molestarlo demasiado, ya que no tiene que fusionarse con su troncal, también puede fusionarse entre sucursales (por ejemplo, fusionar Feature_A3 en Feature_A2).

Entonces, para recapitular:

  1. Aunque no es obligatorio, recomiendo cambiar el nombre de tus carpetas para que coincidan con las convenciones (puedes hacerlo fácilmente haciendo clic derecho en Tortoise SVN, pero solo DESPUÉS de que todos los compañeros de equipo se comprometan, de lo contrario fusionar será un INFIERNO para ellos).
  2. Intente configurar Branch locations en http://192.168.0.64/svn/.../Android/Feature
  3. Y Trunk a http://192.168.0.64/svn/.../Android/Development (solo si contiene fonts, similar a Feature_A2 / 3)
  4. Considere "labelr" sus lanzamientos en una carpeta de tags (es más o less copyr la carpeta de troncales / sucursales a tags, pero tiene un command para eso).

    Si lo hace, también puede agregar carpetas de tags a las Branch locations , de esa manera podrá comparar su fuente actual con cualquier versión anterior (que es útil).

PD: el "unresolved conflicts" error también puede significar que tienes conflictos no resueltos (duh :)). Los conflictos generalmente se crean cuando tanto usted como un compañero de equipo cambian las mismas líneas en el file (o si elimina un file que usted modificó) y usted actualiza para get sus cambios.

SVN no te permitirá fusionarte hasta que resuelvas manualmente estos conflictos / cambios.

Puede encontrar conflictos en la pestaña Version Control en la parte inferior, se marcarán en rojo.
(Pero no creo que ese fuera el problema en su caso)

¡Hazme saber si eso funciona para ti!

No soy un experto SVN, pero creo que tendrá que cambiar su estructura de directorys. Creo que a pesar de ser solo una convención, svn usa la estructura de directorys para fusionar sucursales. Entonces su estructura de directory debe ser:

 SVN /Android /branches /production /featureA2 /featureA3 /tags /trunk /IOS /branches /production /featureA2 /featureA3 /tags /trunk 

Aunque el Repo-browser TortoiseSVN le permitirá mover sus directorys, se almacenan muchos metadatos en cada directory y se utilizan para manejar el process de fusión, por lo que es posible que deba reiniciar su repository. Consulte la guía de mejores prácticas de subversión y las categorías para el layout del repository para get más detalles sobre cómo configurar sus repositorys . Dicho todo esto, dudaría en confiar en la integración de svn de Android Studio para hacer trabajos pesados ​​como la fusión de sucursales (aunque la mayoría de las cosas en las herramientas de JetBrains son fantásticas) su event handling SVN deja mucho que desear.