2010-02-18 6 views
12

Estoy tratando de comprender el historial de mi base de código, que se encuentra en TFS 2005, y encontré un conjunto de cambios donde todos los cambios se marcaron como rama y fusión.¿Qué significa cuando Source Control Explorer muestra tanto la rama como la fusión de un conjunto de cambios?

Name Change   Folder 
------------------------------------------------ 
A.cs merge, branch $/Root/Solution/Project 

Soy incapaz de encontrar nada (especialmente en MSDN) que describe lo que las diversas combinaciones de Agregar, editar, borrar, Rama, fusionar, Undelete, codificación, etc. significa. Cada uno se explica por sí solo cuando se usa solo y algunos no tienen sentido juntos, como Agregar y Eliminar, así que estoy buscando información sobre las combinaciones legales y lo que significan.

Respuesta

14

Merge se puede combinar con cualquier cosa excepto Agregar. Por sí solo, Merge solo significa que (1) lo que ocurra es el resultado de invocar el comando Merge (2) cuando te registras, TFS registrará los metadatos del historial de merge apropiado además de los cambios mismos. La (s) operación (es) restante (s) en la lista de tipos de cambio le dice exactamente qué tipo de cambio se aplica al artículo de destino. Por lo tanto:

Merge, Rama = un elemento que existe en la rama de origen pero no la rama de destino está siendo copiado a la meta por primera vez

+5

Entonces (fusión): sin cambio real, (fusión, rama): copiar archivo de origen a destino, (fusionar, eliminar): eliminar archivo del destino, (fusionar, editar): actualizar el archivo en el destino con los contenidos de la fuente, (fusionar, renombrar): renombrar el archivo en el destino, (fusionar, recuperar): recuperar el archivo en el destino, (fusionar, renombrar, editar): renombrar el archivo en el destino y actualizar su contenido – Faron

+0

Sí, casi. Fwiw, hay algunas combinaciones funky que solo son posibles durante Merge. Si el elemento de origen no existe en el destino, pero decide descartar el conjunto de cambios candidato [o, de forma equivalente, eliminar el elemento mientras está en fusión pendiente + estado de bifurcación], termina con (fusionar, bifurcar, eliminar). O si un elemento foo se elimina tanto en origen como en destino; recuperas source \ foo, luego borras source \ foo \ somechild, luego fusionas todo lo anterior; el resultado de la combinación colocará target \ foo \ somechild en un estado (combinar, recuperar, eliminar). –

+1

¿Sabes dónde se puede documentar esto? – Faron

-1

Esto podría tener sentido si el archivo se creó durante una operación de bifurcación y los cambios de la bifurcación de origen se fusionaron en la nueva bifurcación sin haberse registrado en ningún momento.

+0

He intentado esto y Visual Studio prohíbe la fusión en una rama uncommited. – Faron

Cuestiones relacionadas