ReSharper Code Cleanup / Reformat Code feature vs Versioning Control Systems

La function de limpieza del Código ReSharper (con " reorderar miembros " y " reformatear el código " habilitado) es realmente genial. Usted define una plantilla de layout usando XML, luego una combinación de teclas simple reorganiza su file fuente completo (o carpeta / proyecto / solución) de acuerdo con las reglas que establece en la plantilla.

De todos modos, ¿crees que podría ser un problema con respecto a VCS como subversión, cvs, git, etc.? ¿Existe la posibilidad de que cause muchos conflictos no deseados?

Gracias.

Sí, definitivamente causará problemas. Además de crear conflictos que deben resolverse manualmente, cuando ingresa un file que ha sido reformateado, el VCS notará que casi todas las líneas han sido modificadas. Esto hará que sea difícil para usted o un compañero de equipo mirar hacia atrás en la historia y ver qué cambió cuando.

Dicho esto, si todo el mundo autoevalúa su código de la misma manera (es decir, distribuye esa plantilla XML al equipo), entonces podría funcionar bien. Los problemas realmente solo surgen cuando no todos hacen lo mismo.

Estoy esperando un IDE o un editor que siempre guarde el código fuente usando algunas reglas de formatting de línea de base, pero permite que cada desarrollador individual muestre y edite el código en su propio formatting preferido. De esa manera puedo poner mi abrazadera abierta al comienzo de la siguiente línea y no al final de la línea actual donde todos los paganos parecen pensar que va.

Creo que esperaré mucho time.

  • Solo reformatee la solución completa una vez
  • Y asegúrese de que cada desarrollador esté usando Resharper
  • Y asegúrese de que las opciones de formatting sean compartidas y versionadas (opciones para compartir el estilo del código)

Puede usar StyleCop para aplicar un set completo de estándares que prácticamente obliga a todos a usar los mismos styles de layout. Entonces todo lo que necesita hacer es desarrollar una especificación de estilo de código ReSharper que coincida con esto, y distribuirlo al equipo.

Todavía estoy esperando que alguien más haga esto , y JetBrains aclara todos los detalles molestos que no son totalmente compatibles, para permitir que ReSharper básicamente garantice el cumplimiento total de StyleCop.

Definitivamente puede causar conflictos, por lo que me aseguraré de no formatear files completos si hay personas trabajando en ellos en paralelo.

Definitivamente podría causar conflictos.

Si desea utilizar esto en un entorno multiusuario, la configuration de Resharper debe formatear su código según un set de estándares que se aplican en su organización, independientemente de si los usuarios utilizan Resharper o no.

De esta forma, está usando la herramienta para asegurarse de que su propio código cumpla con los estándares, y no aplique sus preferences a toda la base de código.

Estoy de acuerdo con las respuestas anteriores que afirman que los conflictos son posibles e incluso probables.

Si está planificando reformatear el código, al less asegúrese de no mezclar las comprobaciones de formateo con aquellas que cambian la function del código real. De esta forma, las personas pueden omitir los loggings anteriores que son simples reformateos. También es una buena idea asegurarse de que todos sepan que se está formateando para que puedan objetar si tienen un trabajo continuo en esa área.

Estamos trabajando en algo para trabajar con refactores en el nivel del código fuente. Lo llamamos Xmerge, y ahora es parte de Plastic . Es solo un primer acercamiento, ya que estamos trabajando en soluciones más avanzadas. Verifíquelo aquí .

Puede ser una buena idea escribir un script para ver todas las versiones en el historial de control de origen, aplicar el código de limpieza y luego verificarlo en un nuevo repository. Luego usa ese repository para todo tu trabajo en el futuro.