¿Cómo puedo excluir un archivo específico del control de fuente TFS?

89

Tenemos varios archivos de configuración (app.DEV.config, app.TEST.config, 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 la 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 estarlo.

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

Estoy usando VS 2005 y 2005 Team Explorer.

Ralph Shillington
fuente

Respuestas:

39

Hay una política de registro (política de patrones prohibidos) en MS Power Tools que le permite filtrar los nombres de archivo con una expresión regular. Ver: Microsoft Team Foundation Server Power Tools

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

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

Jason Williams
fuente
1
La función de exclusión de todo el proyecto de equipo que está describiendo no existe en TFS, desafortunadamente. (a menos que esté en una versión más reciente de 2010 que la mía) El cuadro de diálogo "Tipos de archivo de control de código fuente" controla qué tipos de archivo no se pueden combinar, es decir, bloqueados exclusivamente.
Richard Berg
Tengo VSTS2005 / 2008 en el trabajo, pero estoy escribiendo esto en casa, así que mi respuesta fue de mi mala memoria, ¡lo siento! Me acabo de dar cuenta de que lo que necesita es la política de verificación de "patrones prohibidos" de TFS Power Tools. Esto le permite hacer coincidir nombres de archivos usando una expresión regular y bloquear registros de nombres de archivo no deseados: msdn.microsoft.com/en-us/teamsystem/bb980963.aspx#checkin
Jason Williams
Buena llamada, me había olvidado de esa política. Editaré tu publicación para darle visibilidad.
Richard Berg
¿Cómo puedo desenmascarar una rama? He escondido una rama por error y no puedo desenmascararla VS2012
rolivares
95

Es fácil en TFS2012, cree un archivo .tfignore

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.
artfulhacker
fuente
¿Cómo haría una carpeta de paquetes de ignorar recursiva, pero incluir paquetes / repositories.config?
Maslow
@Maslow, si lo tienes, no dudes en editar mi respuesta. parece una configuración bastante común y deberíamos ponerlo en el ejemplo
artfulhacker
¿un archivo .tfignore en la raíz de la colección del proyecto se aplica automáticamente en la jerarquía incluso si no tienen esa carpeta asignada / descargada?
Maslow
2
Esto solo es compatible con los espacios de trabajo locales. msdn.microsoft.com/library/vstudio/…
Sumo
45

Seleccione el archivo App.config en el Explorador de soluciones y elija Archivo -> Control de código fuente -> Excluir App.config del Control de código fuente.

PjL
fuente
1
exactamente lo que necesitaba para no almacenar mis archivos minificados.
Valamas
13
Me molesta que esta opción no aparezca en el menú contextual ordinario
Eric Herlitz
6
No tengo esa opción. : '- (
Jan Aagaard
2
Tampoco está presente en Visual Studio 2013 Ultimate :(
Ytrog
4
Está presente (en Archivo> Control de código fuente> Avanzado> Excluir App.config del Control de código fuente) en mi Visual Studio Premium 2013 (Versión 12.0.3023.00 Actualización 3).
Martin Bäckström
21

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 fuente -> Avanzado

Ruta para excluir

Y aquí está

Aquí está la exclusión

Tenga en cuenta: si hace clic con el botón derecho en un archivo en el Explorador de soluciones, solo encontrará "las opciones más importantes", no todas :)

Felix Keil
fuente
No. Debe abrir las carpetas y seleccionar cada archivo que desee excluir.
Felix Keil
13

Si todo lo que desea es tener un archivo en el proyecto pero no bajo el control de fuente con TFS, simplemente vaya a SourceControl, elimine dicho archivo y deshaga su desprotección del archivo del proyecto (intentará eliminar el archivo del proyecto como bien). Luego, registre su eliminación del archivo que está excluyendo. En el explorador de soluciones, debería ver que no hay un ícono de control de fuente junto al archivo que está excluyendo. El archivo del proyecto debería incluir un archivo allí, pero ese archivo ya no debería estar bajo control de código fuente.

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

Seth
fuente
7

TFS le permite encubrir 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 desee que TFS ignore. Aquí encontrará un procedimiento más detallado .

joshua.ewer
fuente
si solo hubiera una manera de ocultar la carpeta para todos los espacios de trabajo ... no veo ninguna configuración equivalente en seguridad.
felickz
No se puede ocultar a nivel de archivo; única carpeta.
dudeNumber4
@ dudeNumber4 Creo que esta función se desactivó en versiones posteriores de TFS, mucho después de que se escribió la respuesta inicial. Sin embargo, podrías probar este truco: social.msdn.microsoft.com/Forums/vstudio/en-US/…
joshua.ewer
5

Esto funcionó para mí:

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 en el 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.

Fuente: = "> ¿Cómo puedo excluir archivos específicos del control de fuente TFS?

Huilaaja
fuente
2

Visual Studio 2013 (y 2012)

Esta función está disponible seleccionando los archivos y yendo a:

File > Source Control > Advanced > Exclude ... from Source Control
Evan Mulawski
fuente
No hay exclusión en 2012.
ExpatEgghead
Tampoco lo
veo
2

Esta pregunta se hizo hace un tiempo, pero se relaciona con el 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 Build Events para mover los archivos, por lo que tenemos los archivos adecuados en su lugar para que se complete el proceso de compilación.
  • Cuando nuestro evento de compilación intenta copiar los archivos, obtenemos errores de acceso denegado.

La razón:

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

Ejemplo de evento de construcción:

  • copiar "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"

Arriba, simplemente necesitamos mover un archivo de 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 poder incluir archivos de proyecto en mi instalador. Mi instalador no los tomó como parte del resultado del proyecto.

La solución: (casi me pateo en la cara cuando me di cuenta de esto)

Evento de nueva construcción:

  • attrib -R "$ (ProjectDir) SomeFile.ext"
  • copiar "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"
  • attrib + R "$ (ProjectDir) SomeFile.ext"

Todos nos estamos divirtiendo con Build Events, ¿verdad? Arriba simplemente hago 2 cosas, elimino el atributo de solo lectura, ahora los archivos no son de solo lectura. Copie mi archivo como originalmente quería. Luego reemplace el atributo de solo lectura (opcional, supongo) para mantener contentos a Visual Studio y Team Foundations.

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

Rob K.
fuente
0

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

  • Haga una copia del archivo de destino en el Explorador de Windows.
  • Deshaga los cambios pendientes (si los hay) 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ámbiele el nombre para que tenga el mismo nombre que el archivo de destino eliminado.

TFS ahora parece ignorar los cambios en el archivo de destino. Si necesita editar el archivo nuevamente, no use Visual Studio, ya que TFS luego volverá a colocar el archivo en la lista de archivos con cambios pendientes.

Protector uno
fuente
0

Simplemente puede seleccionar el archivo de su Explorador de control de fuente y hacer clic derecho sobre él, y luego seleccionar la opción "Cambiar nombre" desde allí, y puede agregar ".excluir" al final del nombre del archivo.

Y luego recuerde registrar el archivo, y luego podrá ver que su archivo está excluido del control de código fuente.

imsummysingh
fuente