Saltar al contenido

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

Solución:

Si está utilizando espacios de trabajo locales (TFS 2012+), ahora puede utilizar el .tfignore file para excluir carpetas y archivos locales del registro.

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 sobre 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 .tfignore en la carpeta donde desea que se apliquen las reglas. Los efectos del .tfignore los archivos son recursivos. Sin embargo, puede crear archivos .tfignore en subcarpetas para anular los efectos de una .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

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 partir de Noviembre de 2016 Agosto de 2018.

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

  1. Asegúrese de que su packages La carpeta 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 que su .sln El archivo existe en a menos que se especifique lo contrario (las instrucciones de NuGet no son completamente claras al respecto).
  3. Crear un .nuget carpeta. Puede usar el Explorador de Windows para nombrarlo .nuget. para que se guarde con éxito como .nuget (elimina automáticamente el último punto) pero directamente tratando de nombrarlo .nuget puede que no funcione (puede recibir un error o puede cambiar el nombre, dependiendo de su versión de Windows). O asigne un nombre al directorio nuget y abra el directorio principal en la línea de comandos. escribe. ren nuget .nuget
  4. Dentro de esa carpeta, cree un NuGet.config archivo y 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. Vuelve en tu .sln‘s carpeta y cree un nuevo archivo de texto y asígnele el nombre .tfignore (si usa el Explorador de Windows, use el mismo truco anterior y asígnele el nombre .tfignore.)
  2. Coloque el siguiente contenido en ese archivo:

.tfignore:

# 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, envíelo a 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 .tfignore archivo y .nuget carpeta a todas mis diversas soluciones y las comprometí y ya no tengo la packages carpeta tratando de colarse en mi repositorio de control de código fuente!

Mayor personalización

Si bien no es mío, he encontrado esto .tfignore plantilla de sirkirby para ser útil. El ejemplo en mi respuesta cubre el Nuget packages carpeta, pero esta plantilla incluye algunas otras cosas y proporciona ejemplos adicionales que pueden ser útiles si desea personalizarlo más.

Eso lo hace 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 con el botón 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 carpetas y luego deshacer los pendientes. cambios en el 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 del equipo -> Control de código fuente … -> Política de registro) para impedir que otras personas del equipo registren por error ciertos activos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *