Pregunta

trabajo en un entorno de control de origen mixto. Todavía estamos principalmente en CVS, pero los proyectos más recientes son en SVN. Sin embargo, estoy encontrando dificultades para conseguir la aceptación de SVN porque TortoiseSVN no funciona así TortoiseCVS.

La fusión de 3 vías tiene una gran cantidad de disonancia cognitiva y mientras TortoiseCVS parece conseguir siempre las fusiones derecha, TortoiseSVN casi siempre requiere ayuda manual. También después de la fijación de cualquier conflicto, tiene que marcar manualmente el archivo como bien.

¿Alguien tiene algún consejo sobre cómo llevar a TortoiseSVN a funcionar como TortoiseCVS?

Editar

Para ser más claro, no quiero hacer una fusión a tres bandas, si es posible, me gustaría hacer un doble sentido fusionar como TortoiseCVS hace. Sé que el archivo resultante es el mismo en el CVS y SVN, por ejemplo, un archivo de proyecto de Visual Studio cuenta con dos versiones diferentes. Esto siempre va a terminar en un conflicto en TortoiseSVN y nunca en un conflicto en TortoiseCVS.

SVN se ve así:

<<<<<<< .mine
     <ApplicationRevision>22</ApplicationRevision>
=======
     <ApplicationRevision>28</ApplicationRevision>
>>>>>>> .r195290

CVS loks como

<<<<<<< SomeFile.cproj
     <ApplicationRevision>22</ApplicationRevision>
=======
     <ApplicationRevision>28</ApplicationRevision>
>>>>>>> 1.121

, así que debería ser capaz de obtener el mismo tipo de combinación. Además, TortoiseSVN casi siempre tiene conflictos al actualizar si dos personas trabajan en el mismo archivo, a pesar de que están trabajando en diferentes lugares, TortoiseCVS no tiene este problema. Asumo TortoiseSVN está siendo más conservador y te obliga a comprobar los TortoiseCVS combinación está asumiendo CVS lo justo. Me preguntaba si hay donde algunas opciones ocultas en algún lugar de TortoiseSVN para que sea más liberal, y también para hacer un doble sentido fusionar en lugar de una a tres bandas.

Ah, y sí estamos utilizando Subversion 1.5 que tiene fusionar puntos (ramas eran básicamente inútil sin este).

¿Fue útil?

Solución

Tome un vistazo a BeyondCompare y Araxis Merge . Ofrecen instrucciones sobre su integración en TortoiseSVN como herramientas de combinación / diff personalizados.

Otros consejos

Conflicto marcado no debería tener nada que ver con ella misma tortuga, sino más bien SVN contra CVS. Es SVN que determina si un archivo está en conflicto, no la tortuga. No puedo decir por qué ese es el caso, o lo que puede hacer al respecto. Probablemente muy poco. SVN es probablemente más conservador cuando se trata de aceptar fusiones. Una vez más, no es positivo sobre el algoritmo que se utiliza, pero parece marcar un archivo como en conflicto cuando se cambiaron las líneas son lo suficientemente cerca unos de otros (y los cambios son diferentes).

Creo que el TortoiseMerge es bastante agradable en realidad, así que espero poder explicarlo lo mejor que pueda, y es posible que vea algo que no sabía antes. Normalmente tiene 2 paneles de lado a lado, y luego un panel inferior. El panel inferior es el resultado de la fusión, los conflictos marcados en rojo, junto con otras piezas que ya se fusionaron con éxito. En las líneas de conflicto, se puede hacer clic derecho y elegir si desea mantener sus cambios (como se ve en el panel de "Mine"), otros cambios (como se ve en el panel "El suyo"), o puede aceptar una combinación de los .

Por último, puedo explicar por qué ahorro una fusión y marca como resuelto son dos pasos separados. En SVN, marcado algo como resuelto permite que sea enviado de nuevo. Es básicamente una prueba de fallos que ayuda a evitar que la comisión de un archivo que se ha fusionado en la herramienta y se guarda, pero aún no han terminado de editar / probarlo. Básicamente SVN es distinguir entre salvar algo en una herramienta de combinación y de hecho resolver.

La esperanza que nos ayudó.

Sólo una conjetura salvaje aquí, pero si usted está utilizando CVSNT en el servidor de esta observación podría basarse en el hecho de que CVSNT simplemente es mucho mejor en la fusión de SVN porque tiene la noción de "mergepoints". Esto normalmente conduce a muchos menos conflictos cuando la fusión de / a la misma rama varias veces.
Creo que no hay mucho que se pueda hacer al respecto, al menos no de una manera discreta.

EDIT: mi error. A partir de v1.5 SVN también tiene mergepoints. Me Eliminar esta respuesta, pero creo que aún podría ser de alguna utilidad para alguien usando una versión anterior de SVN.

Si eso no es lo que estás hablando tal vez debería aclarar su pregunta un poco más. ¿Estás seguro de que esto es acerca de las diferencias entre TortoiseSVN y TortoiseCVS y no más bien entre el CVS (NT?) Y SVN?

Creo que su pregunta se centra en cómo apoyar mejor a la fusión con la subversión en Windows.

Puede que no sea específicamente lo que estaban buscando, pero lo usa con regularidad Emacs bajo las ventanas para facilitar la fusión en virtud de la subversión.

Emacs + SVN bajo Windows

Una combinación de EmacsW32 + cygwin (con svn ) + psvn emacs paquete + " "emacs incorporados Combinar herramientas funciona bien en windows. encontrará psvn viene de serie en Emacs hoy en día, y si no está en la suya, usted puede descargar e instalar fácilmente llegar y rápidamente.

Debido a la compatibilidad integrada en el conjunto de herramientas basadas en Emacs, estoy a punto de 5x a 10x más rápido en la resolución de fusiones que un típico compañero de trabajo. Parecen contenido utilizando TortoiseSVN + su otro editor favorito y asignan algo de esa manera ... He ofrecido varias veces para instruirlos sobre el uso y el poder de las capacidades de Emacs (una vez que se configura hacia arriba, se ocupa de sí mismo), pero parece que prefiere pegan a sus herramientas rudimentarias y no invierten en el aumento de su productividad.

SVN es una herramienta poderosa, y si usted está obligado a usarlo, que también podría considerar pasar algún tiempo invirtiendo en hacer que funcione para usted.

David

Uh, tal vez me falta el problema. Si lo hace TortoiseCVS "derecho" (como su equipo necesita que se haga - o espera que se haga) ... entonces ¿por qué quiere elegir TortoiseSVN

?

No se debe confundir el "propósito" de esta tecnología ... "servir" al equipo de desarrollo en el proceso de desarrollo.

(estoy usando tanto en el momento de probar TortoiseSVN .. pero no me gusta la etiqueta / metodología de ramificación en SVN tanto hasta ahora)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top