¿Cómo ignorar archivos/directorios en TFS para evitar que vayan al repositorio central de fuentes?

Resuelto David asked hace 15 años • 6 respuestas

¿Es posible configurar archivos/carpetas para ignorar por proyecto en el control de fuente TFS?

Por ejemplo, tengo un sitio web con una carpeta de activos en la que no quiero acceder al control de fuente. Estos activos se mantienen mediante un sistema separado. Además, no quiero poner varios gigabytes de activos en el control de fuente, pero necesito un par de muestras en mi máquina de desarrollo, pero tampoco quiero verificarlas.

Si estoy trabajando en este sitio web mientras estoy vinculado al control de código fuente y actualizo el árbol, estos archivos se agregarán automáticamente nuevamente.

Quiero evitar que esto suceda.

David avatar May 29 '09 02:05 David
Aceptado

Si está utilizando espacios de trabajo locales (TFS 2012+), ahora puede usar el .tfignorearchivo para excluir carpetas y archivos locales para que no se registren.

Si agrega ese archivo al control de fuente, puede asegurarse de que otros miembros de su equipo compartan la misma configuración de exclusión.

Detalles completos en MSDN: http://msdn.microsoft.com/en-us/library/ms245454.aspx#tfignore

Para los perezosos:

Puede configurar qué tipos de archivos se ignoran colocando un archivo de texto llamado .tfignoreen la carpeta donde desea que se apliquen las reglas. Los efectos del .tfignorearchivo son recursivos. Sin embargo, puede crear archivos .tfignore en subcarpetas para anular los efectos de un .tfignore archivo en una carpeta principal.

Las siguientes reglas se aplican a un archivo .tfignore:

  • #comienza una línea de comentario
  • El * y ? Se admiten comodines.
  • Una especificación de archivo es recursiva a menos que tenga el prefijo \.
  • ! niega una especificación de archivo (los archivos que coinciden con el patrón no se ignoran)

Archivo de ejemplo:

# Ignore .cpp files in the ProjA sub-folder and all its subfolders
ProjA\*.cpp
# 
# Ignore .txt files in this folder 
\*.txt
#
# Ignore .xml files in this folder and all its sub-folders
*.xml
#
# Ignore all files in the Temp sub-folder
\Temp
#
# Do not ignore .dll files in this folder nor in any of its sub-folders
!*.dll
Richard Banks avatar Jan 13 '2014 22:01 Richard Banks

Para VS2015 y VS2017

Funciona con TFS (local) o VSO (Visual Studio Online, la oferta alojada en Azure)

La documentación de NuGet proporciona instrucciones sobre cómo lograr esto y las seguí con éxito para Visual Studio 2015 y Visual Studio 2017 contra VSTS (TFS alojado en Azure). Todo está completamente actualizado a noviembre de 2016 y agosto de 2018.

Te recomiendo que sigas las instrucciones de NuGet pero solo para resumir lo que hice:

  1. Asegúrese de que su packagescarpeta no esté comprometida con TFS. Si es así, sácalo de allí.
  2. Todo lo demás que creamos a continuación va a la misma carpeta .slnen la que existe su archivo, a menos que se especifique lo contrario (las instrucciones de NuGet no son completamente claras al respecto).
  3. Crea una .nugetcarpeta. Puede usar el Explorador de Windows para nombrarlo y .nuget.guardarlo exitosamente como .nuget(elimina automáticamente el último punto), pero intentar nombrarlo directamente .nugetpuede no funcionar (puede recibir un error o puede cambiar el nombre, dependiendo de su versión de Windows). ). O nombre el directorio nuget y abra el directorio principal en la línea de comando. tipo. ren nuget .nuget
  4. Dentro de esa carpeta, cree un NuGet.configarchivo, agregue el siguiente contenido y guárdelo:

NuGet.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution>
</configuration>
  1. Vuelva a su .slncarpeta y cree un nuevo archivo de texto y asígnele un nombre .tfignore(si usa el Explorador de Windows, use el mismo truco que el anterior y asígnele un nombre .tfignore.)
  2. Coloque el siguiente contenido en ese archivo:

.tfigignore:

# Ignore the NuGet packages folder in the root of the repository.
# If needed, prefix 'packages' with additional folder names if it's 
# not in the same folder as .tfignore.
packages

# include package target files which may be required for msbuild,
# again prefixing the folder name as needed.
!packages/*.targets
  1. Guarde todo esto, confírmelo en TFS, luego cierre y vuelva a abrir Visual Studio y Team Explorer ya no debería identificar la carpeta de paquetes como un registro pendiente.
  2. Copie/pegue a través del Explorador de Windows el .tfignorearchivo y .nugetla carpeta en todas mis diversas soluciones, los comprometí y ya no tengo la packagescarpeta intentando colarse en mi repositorio de control de fuente.

Mayor personalización

Si bien no es mía, esta .tfignoreplantilla de sirkirby me ha resultado útil. El ejemplo de mi respuesta cubre la carpeta Nuget packages, pero esta plantilla incluye algunas otras cosas y proporciona ejemplos adicionales que pueden ser útiles si desea personalizarla aún más.

Jaxidian avatar Nov 03 '2016 19:11 Jaxidian

Parece un poco engorroso ignorar archivos (y carpetas) en Team Foundation Server. Encontré un par de formas de hacer esto (usando TFS/Team Explorer/Visual Studio 2008). Estos métodos también funcionan con el tipo de proyecto ASP del sitio web.

Una forma es agregar un elemento nuevo o existente a un proyecto (por ejemplo, hacer clic derecho en el proyecto, Agregar elemento existente o arrastrar y soltar desde el explorador de Windows al explorador de soluciones), dejar que TFS procese los archivos o la carpeta y luego deshacer los pendientes. cambios en el(los) artículo(s). TFS los desmarcará como si tuvieran un cambio de adición pendiente y los archivos permanecerán en silencio en el proyecto y permanecerán fuera de TFS.

Otra forma es con el comando Agregar elementos a la carpeta del Explorador de control de código fuente. Esto inicia un pequeño asistente y en uno de los pasos puede seleccionar elementos para excluir (aunque creo que debe agregar al menos un elemento a TFS con este método para que el asistente le permita continuar).

Incluso puede agregar una política de registro de patrones prohibidos (en Equipo -> Configuración del proyecto de equipo -> Control de fuente... -> Política de registro) para impedir que otras personas del equipo registren por error ciertos activos.

Derek Morrison avatar Dec 21 '2009 09:12 Derek Morrison

Para TFS 2013 :

Inicie en VisualStudio- Team Explorer , en el cuadro de diálogo PendingChanges , deshaga los cambios con el estado [agregar], que debe ignorarse.

Visual Studio detectará los complementos nuevamente. Haga clic en "Detectado: x agregar(es)" -en Cambios excluidos

En el cuadro de diálogo abierto "Promover cambios de cadidad", puede excluir fácilmente archivos y carpetas con el menú contextual. Las opciones son:

  • Ignorar este elemento
  • Ignorar por extensión
  • Ignorar por nombre de archivo
  • Ignorar por carpeta (sí, carpeta, TFS 2013 Actualización 4/Visual Studio 2013 Premium Actualización 4)

No olvide registrar el archivo .tfignore modificado.

Para VS 2015/2017 :

El mismo procedimiento: en la "Pestaña Cambios excluidos" en TeamExplorer\Cambios pendientes, haga clic en Detectado: xxx add(s)

La pestaña Cambios excluidos en TeamExplorer\Cambios pendientes

Se abre el cuadro de diálogo "Promover cambios de candidatos" y en las entradas puede hacer clic derecho para acceder al menú contextual. El error tipográfico ya está solucionado :-)

gReX avatar Mar 11 '2015 08:03 gReX