Cómo puedo excluir un archivo específico del control de código fuente de TFS


Tenemos varios archivos de configuración (app.DEV.config, app.PRUEBA.configuración, etc.) y un evento previo a la compilación que copia el archivo de configuración correcto en app.config. Obviamente, los archivos específicos de configuración están en control de código fuente, pero por el momento también lo está App.Config, y eso no debería ser.

¿Cómo puedo marcar ese archivo como excluido del control de código fuente, pero obviamente no del proyecto?

Estoy usando VS 2005 y 2005 Team Explorer.

 87
tfs
Author: SteveC, 2009-09-02

11 answers

Hay una política de checkin (Forbidden Patterns Policy) en MS Power Tools que le permite filtrar los nombres de archivo contra una expresión regular. Ver: Microsoft Team Foundation Server Power Tools

Si bien las políticas de comprobación no son completamente infalibles, son lo más cercano que TFS tiene para aplicar reglas definidas por el usuario como lo que está buscando.

(Y como los otros han dicho, también puede ocultar un archivo o carpeta, lo que significa que permanece en el Control de código fuente y es visible para todos los demás en el equipo, pero no se copia a su PC hasta que decida desenchufarlo; o puede eliminar el archivo, lo que significa que se elimina de las PC de todos cuando llegan más tarde , pero ninguna de estas opciones evitará que dichos archivos se agreguen al control de código fuente en primer lugar)

 39
Author: Jason Williams,
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-10-09 22:49:58

Es fácil en TFS2012, crear un.tfignore file

Http://msdn.microsoft.com/en-us/library/tfs/ms245454%28v=vs.110%29.aspx#tfignore

######################################
# 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

# EDIT https://msdn.microsoft.com/en-us/library/ms245454(v=vs.110).aspx#tfignore
# A filespec is recursive unless prefixed by the \ character.
 93
Author: artfulhacker,
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-02-01 22:24:54

Seleccione la Aplicación.config archivo en el Explorador de soluciones, y seleccione Archivo - > Control de origen - > Excluir aplicación.configuración desde el Control de código fuente.

 39
Author: PjL,
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
2010-11-30 07:23:22

Hay una opción que es difícil de encontrar:

1. Seleccione el archivo o varios archivos en el Explorador de soluciones

2. Vaya a Archivo - > Control de código fuente - > Avanzado

Ruta A Excluir

Y aquí está

Aquí está el Excluir

Ten en cuenta: Si hace clic derecho en un archivo en el Explorador de soluciones, solo encontrará "las opciones más importantes", no todas:)

 19
Author: Felix Keil,
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-09-26 08:26:37

Si todo lo que desea es tener un archivo en el proyecto pero no bajo control de código fuente con TFS, simplemente vaya a SourceControl, elimine dicho archivo y deshaga su proceso de pago del archivo del proyecto (también intentará eliminar el archivo del proyecto). A continuación, compruebe su eliminación del archivo que está excluyendo. En el explorador de soluciones debería ver que no hay un icono de control de código fuente junto al archivo que está excluyendo. El archivo de proyecto debe listar un archivo allí, pero ese archivo ahora no debe más tiempo bajo control de fuente.

Tenga en cuenta que cualquier otra persona ahora verá un archivo faltante en el proyecto cuando obtenga la última.

 12
Author: Seth,
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-09-02 19:03:38

TFS le permite ocultar a nivel de carpeta/archivo. Cuando algo está oculto, TFS no intentará sincronizarlo (como un svn:ignore).

Cuando configure su espacio de trabajo, oculte todo lo que quiera que TFS ignore. Un how-to más detallado es aquí.

 7
Author: joshua.ewer,
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-09-02 18:46:34

Esto funcionó para mí:

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 en los elementos. 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.

Fuente: =">¿Cómo puedo excluir un archivo específico del control de código fuente de TFS

 5
Author: Huilaaja,
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
2012-10-06 03:33:30

Visual Studio 2013 (y 2012)

Esta función está disponible seleccionando el archivo (s) y yendo a:

File > Source Control > Advanced > Exclude ... from Source Control
 2
Author: Evan Mulawski,
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-02-23 03:07:19

Esta pregunta se hizo hace un tiempo, pero se refiere al mismo tipo de problema que estaba teniendo.

El Problema:

  • Queremos comprobar nuestro código.
  • entonces queremos construir nuestro proyecto.
    • Durante nuestra compilación dependemos de los eventos de compilación para mover los archivos de manera que tengamos los archivos adecuados en su lugar para que el proceso de compilación se complete.
  • Cuando nuestro evento de compilación intenta copiar los archivos, obtenemos errores de Acceso Denegado.

El Razón:

  • El plugin Visual Studio de Team Foundation Server cambia el atributo de solo lectura de nuestros archivos a READONLY TRUE cuando registramos nuestros archivos.

Ejemplo de Evento de Compilación:

  • copy "Some(TargetDir)SomeFile.ext " "Proj (ProjectDir)"

Arriba, simplemente necesitamos mover un archivo desde nuestra Ruta de Compilación de Destino (las carpetas bin\debug o bin\release) a nuestra carpeta de Proyecto. En mi situación, esto fue para que pudiera incluir archivos de proyecto construidos en mi instalador. Mi El instalador no los estaba tomando como parte del Resultado del proyecto.

La Solución: (casi me pateó la cara cuando me di cuenta de esto)

Evento de Nueva Construcción:

  • attrib-R "Some(ProjectDir)SomeFile.ext "
  • copy "Some(TargetDir)SomeFile.ext " "Proj (ProjectDir)"
  • attrib +R "Some(ProjectDir)SomeFile.ext "

Todos nos estamos divirtiendo con los eventos de construcción, ¿verdad? Arriba simplemente hago 2 cosas, elimino el atributo de solo lectura, ahora los archivos no solo lectura. Copiar mi archivo como yo quería originalmente. A continuación, reemplace el atributo de solo lectura (opcional, supongo) para mantener a Visual Studio y Team Foundations contentos.

Y sí... Todavía me estoy pateando en la cara en este caso.

 2
Author: Rob K.,
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-03-28 18:46:19

Tengo un problema similar, mi Aplicación.config contenía datos sensibles (por ejemplo, nombre de usuario) que estos datos no deberían sincronizarse con TFS.

El artículo Mejores prácticas para implementar contraseñas y otros datos confidenciales a ASP.NET y Azure App Service describe un buen enfoque para evitar este problema:

Use el atributo " file "del elemento" AppSettings " para hacer referencia a un archivo de configuración que no se agrega a source-control

 0
Author: thuld,
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
2015-09-15 15:53:04

Si tiene una versión anterior a TFS2012 y, por lo tanto, no puede crear un archivo .tfignore o usar la opción File > Source Control > Advanced > Exclude …, puede probar esto:

  • Haga una copia del archivo de destino en el Explorador de Windows.
  • Deshacer los cambios pendientes (si los hubiera) en el archivo de destino en Team Explorer/Visual Studio.
  • Elimine el archivo de destino en el Explorador de Windows.
  • Mueva la copia del archivo de destino a la ubicación del archivo de destino eliminado y cámbielo de nombre para que tenga el mismo nombre que el destino eliminado file.

Ahora TFS parece ignorar los cambios en el archivo de destino. Si necesita editar el archivo de nuevo, no utilice Visual Studio, ya que TFS volverá a poner el archivo en la lista de archivos con cambios pendientes.

 0
Author: Protector one,
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
2016-06-29 09:06:22