2011-08-25 16 views
9

Estamos haciendo algunas refactorizaciones importantes y en el transcurso de eso estamos moviendo muchos archivos. Usamos ReSharper, lo que hace que esto (relativamente) sea fácil ya que actualiza todos los usos en cualquier lugar cuando movemos archivos, incluso a un proyecto diferente. Entonces todo es genialControl de versiones TFS - Archivo eliminado, agregado - ¿cómo le decimos a TFS que fue un movimiento?

Excepto que acabamos de descubrir hoy que ReSharper le diría a TFS que elimine el archivo en la ubicación anterior y luego lo inserte como un archivo nuevo en la nueva ubicación. ¿Cómo podemos decirle a TFS que esta eliminación/inserción fue en realidad un movimiento?

+0

Resharper 9 está fuera ... ¿cuáles son las posibilidades de que se solucione este error? – felickz

Respuesta

4

Respuesta corta: No es así.

Respuesta larga: No lo haga a menos que desee ejecutar la posibilidad de enmasillar completamente el control de fuente.

Desde la perspectiva de TFS, el archivo en la nueva ubicación es un archivo completamente diferente. Incluso tiene una ID diferente en el servidor de la base de datos.

Ahora sin duda podría ir espeleología en su base de datos TFS e intentar actualizar manualmente las asociaciones de identificación de archivos. Pero esto tiene una probabilidad extremadamente alta de enredarse completamente ... a menos que usted sea uno de los principales desarrolladores de TFS que estaba íntimamente familiarizado con el back-end del producto. En ese caso, no harías esta pregunta. ;)

Elemento ligeramente fuera del tema: Debes contactar a jetbrains y decirles que arreglen esto.

+2

{maldecir la palabra} - esto no es bueno.Si hubiéramos sabido lo que ReSharper estaba haciendo, podríamos haberlo utilizado para generar todas las ediciones, luego copiar los archivos en otro lugar, deshacer el proceso de pago, mover los archivos, revisarlos y luego volver a copiarlos. Pero aprendimos esto después. –

+0

@David Thielen: Siempre puedes retroceder y empezar de nuevo ... – NotMe

+0

Sí, estamos pensando en hacer eso. –

4

"tf rename" le dirá a TFS que el archivo se ha movido.

http://msdn.microsoft.com/en-us/library/a79bz90w.aspx

Si se encuentra en VS y mover un archivo de una carpeta a otra, se puede ver TFS pende de un cambio de nombre. También puede mover un archivo de una carpeta a otra y luego cambiar el nombre del archivo. TFS pends a rename.

Aparentemente cuando el reajuste está moviendo archivos alrededor de él no está usando mover y renombrar apis en el sistema de proyecto VS, o esperaría que esto "simplemente funcione".

+1

Mueva un archivo entre * proyectos * en VS. En realidad, elimina/agrega, no mueve. Por lo tanto, me imagino que esto es en realidad un error VS. –

4

Me enfrenté a una situación similar en la que quería mover archivos entre proyectos y quería que Resharper hiciera todo el trabajo posible. Estos son los pasos que terminé haciendo:

  1. Mueva el archivo en Resharper. Esto hará el cambio apropiado al archivo de proyecto de destino.
  2. Cierre la solución o desactive Resharper.
  3. Deshaga la eliminación/agregue en TFS.
  4. Mueva el archivo en TFS.
  5. Asegúrese de que el archivo movido ya no se encuentre en el proyecto fuente.
  6. Vuelva a cargar la solución o vuelva a habilitar Resharper.
  7. Use Resharper para hacer cambios en el espacio de nombre.

Obviamente se puede hacer con más de un archivo a la vez. Es un dolor, pero TFS termina con el cambio correcto, y Resharper se ocupa de cambiar las referencias.

Cuestiones relacionadas