2010-02-26 81 views
25

Actualmente estoy reorganizando nuestro control de fuente TFS para un gran conjunto de soluciones, y lo he hecho con éxito hasta el momento.Eliminar de forma segura un proyecto de rama TFS

Tengo un problema en este momento en el que necesito eliminar un proyecto TFS heredado "Release Branch" que se ramificó para la estructura anterior y ya no es necesario porque ahora albergo una rama de versión dentro de la nueva estructura.

Este es un ejemplo de cómo el control de la fuente ahora se ocupa de trasladar todo,

$/Source Project 
    /Trunk 
     /[Projects] 
    /Release 
     /[Projects] 

$/Release Branch Project 
    /[Projects] 
    /[Other legacy stuff] 

información Hasta ahora me he dado cuenta que dice:

  1. tf delete /lock:checkout /recursive TestMain para borrar una rama.
  2. TfsDeleteProject Para eliminar un proyecto

tf delete parece que sólo es relevante cuando necesito eliminar una rama que se encuentra dentro del mismo proyecto que el tronco, y TfsDeleteProject no parece que va a eliminar la rama asociación del proyecto fuente (espero estar equivocado, ver a continuación).

¿Puede alguien decirme si lo anterior va a funcionar, y en qué orden que debe realizar en ellos, para eliminar con éxito el TFS $/Release Branch Project y al mismo tiempo la eliminación de la asociación rama (de botón derecho del ratón $/Source Project -> Propiedades -> Ramas)?

Respuesta

16

En TFS generalmente no puede eliminar permanentemente nada dentro de un proyecto de equipo (y TfsDeleteProject borra un proyecto de equipo completo, pero no está claro si el contenido de control de origen será eliminado ya que un proyecto de equipo es solo el nivel superior del árbol de control de fuente).

Eliminar un archivo, o un conjunto completo de archivos, es solo otro cambio realizado, volver al historial y todavía se puede ver.

Puede usar permisos para que sea inaccesible para todos. O cambie el nombre en un proyecto de equipo "obsoleto".

EDITAR (por fin recordé donde estaba este comando):

Hay otra opción, desde la línea de comandos: tf destroy:

destruye o elimina de forma permanente, los archivos de control de versiones de Team Foundation control de versiones.

Espero que esto elimine los registros de la sucursal para crear los archivos ahora destruidos ... pero es posible que deba verificar.

+0

Entonces, si elimino el proyecto del equipo de la rama de publicación, ¿esto desvinculará esto correctamente de la lista de ramas, o guardará una referencia allí? Básicamente quiero "excluirme". – Codesleuth

+0

@Codesleuth: Ver actualización. – Richard

+0

Gracias por la actualización. Parece arriesgado: s Creo que haré una copia de seguridad TFS antes de hacer esto, lol – Codesleuth

40

me deja poner los hechos así:

  • Dentro del contexto del sistema de control de la fuente de TFS, "Borrar" es una operación puramente lógico. Puede recuperar en cualquier momento. Puede hacer que múltiples elementos eliminados ocupen la misma ruta a lo largo del tiempo, o incluso simultáneamente. Las relaciones de rama se conservan.
  • TFS "Destruir" es la eliminación física.Para mantener la integridad de la base de datos, eso significa que también se eliminan todas las relaciones de entidad: historial de conjuntos de cambios, registros de cambios pendientes, versiones archivadas, historial de fusión y jerarquía de ramas de sí. Esta función Destruir se introdujo en TFS 2008.
  • Destruir es la única operación permitida para alterar la tabla del historial de fusiones (a partir de la cual se determinan las relaciones de las ramas). Todas las otras operaciones son estrictamente anexas.
  • TfsDeleteProject hace todo lo posible para eliminar por completo todos los rastros de un proyecto, el objetivo principal es permitir la creación de un nuevo proyecto con el mismo nombre. Algunos subsistemas TFS admiten eliminaciones físicas; algunos, como los metadatos de campo WIT, solo admiten eliminaciones lógicas, incluso en TFS 2008 &. En el caso del control de fuente, TfsDeleteProject invoca "eliminar" en 2005 y "destruir" en 2008+.
8

Seleccione la carpeta de sucursal que desee desagregar. luego File > Source Control > Branching and Merging > Convert to Folder.

+1

No tengo esta opción. ¿Qué versión de VS y TFS estás usando? – Codesleuth

+2

Esta es solo una opción si ha convertido una carpeta a una sucursal y desea convertirla de nuevo a una carpeta. Las ramas (no las conversiones) se deben destruir desde la línea de comandos con el comando "tf destroy". –

3

En VS2013 no pude encontrarlo en respuesta @Radhika

lo encontré bajo Team Explorer > Source Control Explorer > right mouse on project > Branching and Merging > Convert to folder

enter image description here

Hope esto le ahorra tiempo.

+0

Tenga en cuenta que debe hacer una 'Obtener la última versión' después de la conversión, antes de que la opción' Eliminar' se habilite. – DdW

Cuestiones relacionadas