team - tfs tutorial
¿Cómo puedo excluir un archivo específico del control de fuente TFS? (11)
Tenemos varios archivos de configuración (app.DEV.config, app.TEST.config, etc.) y un evento de precompilació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 fuente --- pero en este momento también lo es App.Config, y eso no debería ser.
¿Cómo puedo marcar ese archivo como excluido del control de origen, pero obviamente no del proyecto?
Estoy usando VS 2005 y 2005 Team Explorer.
Es fácil en TFS2012, crea 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.
Esta pregunta fue hecha hace un tiempo, pero pertenece al mismo tipo de problema que estaba teniendo.
El problema:
- Queremos verificar nuestro código
- Entonces queremos construir nuestro proyecto.
- Durante nuestra compilación, dependemos de Build Events para mover los archivos, de modo que tengamos 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:
- Team Foundation Server Visual Studio Plugin cambia el atributo de solo lectura en nuestros archivos a READONLY TRUE cuando comprobamos nuestros archivos.
Ejemplo de evento de compilación:
- copia "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"
Más 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 proyectos. En mi situación, esto era para poder incluir archivos creados por el proyecto en mi instalador. Mi instalador no los estaba tomando como parte de la salida del proyecto.
La solución: (casi me di una patada en la cara cuando descubrí esto)
Evento de nueva construcción:
- attrib -R "$ (ProjectDir) SomeFile.ext"
- copia "$ (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 solo de lectura. Copia 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.
Esto funcionó para mí:
Una forma es agregar un elemento nuevo o existente a un proyecto (por ejemplo, haga clic 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 la carpeta y luego deshaga cambios en el artículo (s). TFS los desmarca como tener un cambio de agregar pendiente, y los archivos se sentarán silenciosamente en el proyecto y se mantendrán fuera de TFS.
Fuente: = "> ¿Cómo puedo excluir un archivo específico del control de fuente TFS?
Hay una opción que es difícil de encontrar:
1. Seleccione el archivo o varios archivos en Solution Explorer
2. Vaya a Archivo -> Control de fuente -> Avanzado
Y aquí está
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 :)
Seleccione el archivo App.config en el Explorador de soluciones y elija Archivo -> Control de fuente -> Excluir App.config del control de código fuente.
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 intentar esto:
- Haga una copia del archivo de destino en el Explorador de Windows.
- Deshaga los cambios pendientes (si corresponde) en el archivo de destino en Team Explorer / Visual Studio.
- Eliminar 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 cambie 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 volver a editar el archivo, no use Visual Studio, ya que TFS volverá a colocar el archivo en la lista de archivos con Cambios pendientes.
Si todo lo que desea es tener un archivo en el proyecto pero no bajo control de fuente con TFS, simplemente vaya a SourceControl, elimine dicho archivo y deshaga el pago del archivo del proyecto (intentará eliminar el archivo del proyecto como bien). Luego ingrese 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 al lado del archivo que está excluyendo. El archivo del proyecto debe listar un archivo allí, pero ese archivo ya no debe estar bajo control de fuente.
Tenga en cuenta que cualquier otra persona verá un archivo faltante en el proyecto cuando sea más reciente.
TFS le permite ocultar a nivel de carpeta / archivo. Cuando algo está oculto, TFS no intentará sincronizarlo (muy parecido a un svn: ignorar).
Al configurar su espacio de trabajo, oculte todo lo que desee que TFS ignore. here hay un tutorial más detallado.
Tengo un problema similar, mi App.config contenía datos sensibles (por ejemplo, nombre de usuario) de que estos datos no deberían sincronizarse con TFS.
El artículo Prácticas recomendadas para implementar contraseñas y otros datos confidenciales para ASP.NET y Azure App Service describe un buen enfoque para evitar este problema:
Utilice el atributo "file" del elemento "appSettings" para hacer referencia a un archivo de configuración que no se agrega al control de fuente
Visual Studio 2013 (y 2012)
Esta característica está disponible seleccionando el archivo (s) y yendo a:
File > Source Control > Advanced > Exclude ... from Source Control
Existe una política de registro (Política de patrones prohibidos) en MS Power Tools que le permite seleccionar los nombres de archivo contra una expresión regular. Ver: herramientas de poder de Microsoft Team Foundation Server
Si bien las políticas de checkin 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ás 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 desencajarlo; puede eliminar el archivo, lo que significa que se elimina de las PC de todo el mundo cuando son más recientes, pero ninguna de estas opciones evitará que esos archivos se agreguen al control de fuente en primer lugar)