c# - ides - merge tool git
Herramienta de fusión semántica (5)
Antecedentes: en mi trabajo, utilizamos SVN, C # y VisualStudio. Parte de mi tarea regularmente implica cambios de nombre globales. A menudo termino con una compilación rota después de renombrar algo y luego fusionarme en cambios.
La pregunta es: ¿hay alguna solución que pueda ver mis cambios, notar el cambio de nombre global y luego aplicar eso a la edición que otros hicieron mientras se fusionaban?
Otra forma de obtener el mismo efecto sería una especie de registro de refactorización y luego aplicarlo a las ediciones entrantes.
La herramienta no necesita ser perfecta, incluso si solo notara cualquier referencia en sus ediciones que hiciera referencia a algo que he editado sería valioso.
Editar Soy consciente de las herramientas de refactorización de VS. Lo que estoy buscando es algo que me permitirá, después de haber refabricado mi copia de trabajo, aplicar las mismas refactorizaciones a ediciones de otras personas que ahora necesito fusionar.
La solución ideal sería asegurarme de que no haya ediciones sobresalientes cuando realizo la refactorización, pero eso evitaría que cualquier otra persona haga algo durante la próxima semana o más. (Debido a que tendrían que sincronizar cada media hora más o menos para la próxima semana)
¿No sería posible reducir el tiempo necesario para que usted confirme sus cambios? Una o más semanas parece bastante larga entre commits ...
Asumiendo al menos VS 2005 y el cambio de nombre global es una variable / propiedad / función, hay una opción de menú Refactor - Renombrar clic derecho que podría usar. Por diseño, propaga el cambio de nombre en toda su solución.
Entendí tu problema. Desafortunadamente, creo que no hay una secuencia de comandos SVN lo suficientemente inteligente como para hacer este trabajo mientras se sincroniza.
Tal vez su equipo trabaje de forma más adecuada con SVN podría hacer que esta situación no sea dolorosa. Cuando realice un svn: actualice en su copia de trabajo y realice operaciones de fusión, es una buena práctica volver a generar la solución actualizada antes de comprometer los cambios.
Tener un script svn con la capacidad de hacerlo automágicamente cuando se fusiona sería genial, de hecho.
Mantenga el cambio de nombre separado de otras refactorizaciones. Generalmente se pueden automatizar y, por lo tanto, hacer los cambios es fácil. Incluso puede distribuir scripts para permitir que otros ingenieros con fusión infierno realicen las transformaciones en sus archivos.
No hay una manera fácil de automatizar refactorizaciones, así que manténlo simple. Un cambio de nombre solo debería tomar unos minutos y usted debería poder verificar y comprometerse con pruebas mínimas.
Existe una herramienta comercial para ese caso de uso exactamente llamado Semantic Merge . Proporcionan una versión de prueba gratuita de 15 días, los proyectos de código abierto pueden usarlo de forma gratuita ( comuníquese con el soporte ).
La compañía detrás de la fusión semántica también tiene un cliente git con Sematic Merge integrado que actualmente es beta (aquí, tiene algunos videos de introducción cortos ).