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


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

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

Si estoy trabajando en este sitio web mientras estoy vinculado a la fuente control y refresco el árbol, estos archivos se añadirán automáticamente de nuevo

Quiero evitar que esto suceda.

 220
tfs
Author: sergiol, 2009-05-28

6 answers

Para VS2015 y VS2017

Funciona con TFS (on-prem) o VSO (Visual Studio Online - la oferta alojada en Azure)

La documentación de NuGet proporciona instrucciones sobre cómo lograr esto y acabo de seguirlas con éxito para Visual Studio 2015 y Visual Studio 2017 contra VSTS (TFS alojado en Azure). Todo está completamente actualizado a partir de Nov 2016 Ago 2018.

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

  1. Asegúrese de que su carpeta packages no esté confirmada en TFS. Si lo es, sácalo de ahí.
  2. Todo lo demás que creamos a continuación va a la misma carpeta en la que existe su archivo .sln a menos que se especifique lo contrario (las instrucciones de NuGet no son completamente claras al respecto).
  3. Crea una carpeta .nuget. Puede usar el Explorador de Windows para nombrarlo .nuget. para que se guarde correctamente como .nuget (elimina automáticamente el último período), pero tratar de nombrarlo directamente .nuget no puede trabajo (puede obtener un error o puede cambiar el nombre, dependiendo de su versión de Windows).
  4. Dentro de esa carpeta, cree un archivo NuGet.config 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 a la carpeta de tu .sln y crea un nuevo archivo de texto y nómbralo .tfignore (si usas el Explorador de Windows, usa el mismo truco que el anterior y nómbralo .tfignore.)
  2. Poner el siguiente contenido en que 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, confírmelo a TFS, luego cierre y vuelva a abrir Visual Studio y el Team Explorer ya no debería identificar la carpeta packages como un registro pendiente.
  2. Copie/pegue a través del Explorador de Windows el archivo .tfignore y la carpeta .nuget a todas mis diversas soluciones y las confirme y ya no tengo la carpeta packages tratando de colarme en mi repositorio de control de código fuente!

Además Personalización

Aunque no es mío, he encontrado esta .tfignore plantilla de sirkirby para ser útil. El ejemplo en mi respuesta cubre la carpeta Nuget packages, pero esta plantilla incluye algunas otras cosas, así como proporciona ejemplos adicionales que pueden ser útiles si desea personalizar esto aún más.

 62
Author: Jaxidian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-10 19:25:13

Si está utilizando espacios de trabajo locales (TFS 2012+), ahora puede usar el archivo .tfignore para excluir carpetas y archivos locales de la comprobación.

Si agrega ese archivo al control de código 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 texto archivo llamado .tfignore en la carpeta donde desea que se apliquen las reglas. El los efectos del archivo .tfignore son recursivos. Sin embargo, puede crear .tfignore archivos en subcarpetas para anular los efectos de un .tfignore archivo en una carpeta principal.

Las siguientes reglas se aplican a a .tfignore file:

  • # comienza una línea de comentarios
  • El * y ? se admiten comodines.
  • Un filespec es recursivo a menos que vaya precedido por el carácter\.
  • ! niega un filespec (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
 159
Author: Richard Banks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-13 22:07:32

Hace parece un poco engorroso ignorar archivos (y carpetas) en Team Foundation Server. He encontrado un par de maneras 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, haga clic con el botón derecho en el proyecto, Agregue un elemento existente o arrastre y suelte desde el explorador de Windows al explorador de soluciones), deje que TFS procese los archivos o carpetas, luego deshaga los cambios pendientes sobre el (los) artículo (s). TFS se desmarca como tener una pendiente de agregar el cambio, y los archivos se sientan en silencio en el proyecto y a permanecer 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 Check-in) para no permitir que otras personas en el equipo revisen por error ciertos activos.

 70
Author: Derek Morrison,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-21 09:54:16

Para TFS 2013:

Comience en VisualStudio- Team Explorer, en el Diálogo PendingChanges deshaga los cambios con el estado [add], que deben ignorarse.

Visual Studio detectará el(los) añadido (s) de nuevo. Haga clic en " Detected: x add(s)" - in Excluded Changes

En el diálogo abierto "Promover cambios Cadidate"Puede excluir fácilmente Archivos y carpetas con el Menú Contextual. Las opciones son:

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

No se olvide de Comprobar en el cambiado .tfignore-Archivo.

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 diálogo "Promover Cambios de candidato", y en las entradas puede Haga clic derecho para el Menú contextual. El error tipográfico es fijo ahora: -)

 44
Author: gReX,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-18 10:12:09

Voy a asumir que está utilizando Proyectos de Sitios Web. Estos rastrean automáticamente su directorio de proyecto y lanzan todo al control de código fuente. No hay manera de detenerlos.

Sin embargo, no se desespere. Los proyectos de aplicaciones Web no exhiben este comportamiento extraño y bastante inesperado (en mi humilde opinión: idiota). WAP es un complemento para VS2005 y viene directamente con VS2008.

Como alternativa a cambiar sus proyectos a WAP, podría considerar mover la carpeta Assets de Control de código fuente y en una biblioteca de documentos TFS. Solo haga esto SI el proyecto en sí no usa directamente los archivos assets.

 4
Author: NotMe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-28 22:55:03

Encontré la manera perfecta de Ignorar archivos en TFS como lo hace SVN.
En primer lugar, seleccione el archivo que desea ignorar (por ejemplo, la Web.config).
Ahora vaya a la pestaña menú y seleccione:

Control de origen de archivos > Avanzado > Excluir web.configuración desde el control de código fuente

... y boom; su archivo está permanentemente excluido del control de código fuente.

 4
Author: Bharat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-13 12:01:51