2010-10-26 4 views
5

En mi equipo, algunos nos ayudamos mutuamente con las fusiones. Es decir mi código se fusionó al tronco por otra persona. Parece que la información del autor no se conserva completamente durante una fusión. Cuando hago una anotación (culpar), la fusión se muestra como el autor.SVN: ¿conserva una fusión el autor para que la culpa sea correcta?

¿La fusión ha hecho algo mal o no se ha conservado el autor original en una fusión?

Respuesta

10

Si el servidor registro de fusiones y de sus herramientas de cliente son la versión 1.5 o posterior, esto va a funcionar:

svn blame --use-merge-history TARGET 
+4

O 'svn culpa -g TARGET' (más corto) –

1

Una combinación parece que alguien ha finalizado el proceso de pago, ha realizado una gran cantidad de cambios al mismo tiempo y luego vuelve a comprometerse. Quien haya realizado el compromiso final después de la fusión se mostrará como el autor. Si va a obtener personas para ayudar con la fusión, asegúrese de hacerlo bajo el nombre de usuario de la persona a la que desea que se le atribuya.

Habiendo dicho todo eso, si alguien comete un error en la fusión, entonces usted quiere el nombre de la persona que 'ayudó' con la fusión si fuera el que lo hace, ¿no?

+0

La opción '' --username' a commit' SVN puede ser utilizado para cometer como otro usuario . –

0

No estoy 100% seguro, pero creo que la respuesta sería: Sí y No ... anotar AFAIK solo le mostrará el autor que hizo el cambio más reciente a esa línea de código. Esto, en tu caso, sería la persona que hizo la fusión. Si necesita ir más allá, debe culpar a la versión antes de la fusión.

1

La única información en el servidor SVN es el autor de la confirmación. Eso es lo que culpar/anotar usará.

Así que no, el autor no se conserva durante este tipo de fusión. Requerirá MUCHA más información que los identificadores de SVN.

0

Una combinación podría cambiar la propiedad svn:mergeinfo. En este caso, los autores de las confirmaciones originales para cualquier fusión dada se pueden descubrir indirectamente.

Pero esto no es más que una tirita - si quieres real autor seguimiento a través de fusiones, puede que tenga que cambiar a una herramienta herramienta diseñada para el desarrollo distribuido: algo así como git, hg, o incluso darcs.

1

En mi opinión, el enfoque de que la fusión no es hecha por el autor original es incorrecta ... pero esta es una historia diferente.

En Subverison, cada confirmación está asociada a un autor. Una fusión solo se puede hacer en una copia de trabajo que pertenece a un autor en particular. En mi opinión, la información en SVN es correcta, porque el tipo que fusionó el código es "responsable" de la fusión ... por lo que la relación con su nombre es correcta.

+1

Creo que hay escenarios válidos para este enfoque. Al igual, tenemos varios aprendices en nuestra empresa y trabajan en diferentes ramas de características de la misma aplicación. Seguramente no quiero que hagan fusiones desatendidas a aplicaciones que eventualmente entrarán en funcionamiento. Primero quiero revisar sus cambios y finalmente hacer la fusión. Todavía asumo la responsabilidad de fusionarme, ya que de todos modos soy el propietario del proyecto. Además, encontrarás mi nombre en el historial de SVN como el commiter de fusión. Pero aún así, es posible que desee saber qué línea se hizo que sin mi propio nombre se interponga en el camino. –

Cuestiones relacionadas