2008-10-02 21 views
7

Un compañero de trabajo mío me pidió que revisara parte de mi código y me envió un archivo diff. No soy nuevo en el control de versiones o diffs en general, pero el archivo diff fue muy difícil de leer debido a los cambios que realizó. Específicamente, usó la función "extraer método" y reordenó algunos métodos. Conceptualmente, muy fácil de entender pero mirando la diferencia, era muy difícil decir lo que había hecho. Fue mucho más fácil para mí revisar la revisión anterior y usar la función "comparar" de Eclipse, pero todavía era bastante torpe.Refactorización muy bien con Version Control

¿Hay algún sistema de control de versiones que almacene los metadatos relacionados con la refactorización? Por supuesto, sería IDE y lenguaje de programación específico, pero todos usamos Eclipse y Java. ¿Tal vez podría haber algún estándar en el que los IDE y las implementaciones de control de versiones puedan funcionar bien?

Respuesta

4

Eclipse puede export refactoring history (vea 3.2 release notes también). A continuación, puede ver los cambios de refactorización a través de la vista previa en Eclipse.

+0

Me gusta esta idea, siempre y cuando estén versionadas para que otros las vean y hay alguna referencia en los comentarios. – oreoshake

2

No sé de herramientas de comparación que hacen un buen trabajo cuando el archivo ha sido reorganizado. En general, esta es una mala idea debido a este tipo de problema. Con demasiada frecuencia la gente lo hace simplemente para cumplir con su propio estilo, lo cual es una mala, mala razón para cambiar el código. Puede destruir la historia de forma efectiva, al igual que reformatear todo el archivo, y nunca debe hacerse a menos que sea necesario (es decir, ya es un desastre y no se puede leer).

El otro problema es que el código de trabajo probablemente se rompa debido a las preferencias de estilo de alguien. Si no está roto, ¡no lo arregles!

+0

Refactorizar es generalmente una mala idea? ¡Interesante! (Los diablos defienden, pero lo has agrupado con "el archivo ha sido arreglado") –

0

Hace un tiempo pregunté similar question y nunca obtuve una respuesta satisfactoria. Estaré viendo tu pregunta para ver qué se le ocurre a la gente.

Para su situación particular, podría ser mejor revisar la última versión del archivo, usando el diff como guía. Eso es lo que he estado haciendo en mi situación también.

0

La característica de Refactoring History es nueva para mí, pero me gusta cómo suena. Para un método menos específico de herramienta, me gusta enviar archivos de parche. La persona que revisa solo aplica el parche y revisa los resultados, y luego puede volver a la versión en control de versión cuando haya terminado.

Cuestiones relacionadas