web-dev-qa-db-fra.com

Comment ignorer les fichiers / répertoires dans TFS pour les éviter de se rendre dans le référentiel source central?

Est-il possible de configurer des fichiers/dossiers à ignorer par projet dans le contrôle de source TFS?

Par exemple, j'ai un site Web avec un dossier d'actifs dans lequel je ne souhaite pas accéder au contrôle de source. Ces actifs sont gérés par un système distinct. De plus, je ne veux pas mettre plusieurs gigaoctets d'actifs dans le contrôle de source, mais j'ai besoin de quelques exemples sur ma machine de développement, mais je ne veux pas les vérifier non plus.

Si je travaille sur ce site Web tout en étant lié au contrôle de source et que j'actualise l'arborescence, ces fichiers seront automatiquement ajoutés à nouveau.

Je veux empêcher que cela se produise.

244
Dave

Pour VS2015 et VS2017

Fonctionne avec TFS (sur site) ou VSO (Visual Studio Online - l'offre hébergée sur Azure)

La documentation de NuGet fournit instructions sur la façon de procéder et je viens de les suivre avec succès pour Visual Studio 2015 et Visual Studio 2017 par rapport à VSTS (TFS hébergé par Azure). Tout est entièrement mis à jour à partir de Nov 2016 Août 2018.

Je vous recommande de suivre les instructions de NuGet, mais pour récapituler ce que j'ai fait:

  1. Assurez-vous que votre dossier packages n'est pas affecté à TFS. Si c'est le cas, sortez-le de là.
  2. Tout ce que nous créons ci-dessous va dans le même dossier que votre fichier .sln sauf indication contraire (les instructions de NuGet ne sont pas tout à fait claires à ce sujet).
  3. Créez un dossier .nuget. Vous pouvez utiliser l'Explorateur Windows pour le nommer .nuget. afin de l'enregistrer avec succès sous le nom .nuget (il supprime automatiquement la dernière période), mais essayer directement de le nommer .nuget risque de ne pas fonctionner (vous risquez peut-être de une erreur ou cela peut changer le nom, selon votre version de Windows). Ou nommez le nuget de répertoire et ouvrez le répertoire parent à l'invite de la ligne de commande. type. Ren Nuget. Nuget
  4. À l'intérieur de ce dossier, créez un fichier NuGet.config, ajoutez le contenu suivant et enregistrez-le:

NuGet.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution>
</configuration>
  1. Retournez dans le dossier de votre .sln et créez un nouveau fichier texte et nommez-le .tfignore (si vous utilisez l'Explorateur Windows, utilisez le même truc que ci-dessus et nommez-le .tfignore.).
  2. Placez le contenu suivant dans ce fichier:

. 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. Enregistrez tout cela, validez-le dans TFS, puis fermez et rouvrez Visual Studio. Team Explorer ne doit plus identifier le dossier des packages comme une archive en attente.
  2. Copiez/collez via l’explorateur Windows le fichier .tfignore et le dossier .nuget dans toutes mes solutions et les avez validés. Le dossier packages ne tente plus de se faufiler dans mon dépôt de contrôle de source!

Personnalisation supplémentaire

Bien que ce ne soit pas le mien, j’ai trouvé ce .tfignore modèle de sirkirby pour être pratique. L'exemple de ma réponse couvre le dossier Nuget packages, mais ce modèle inclut d'autres éléments ainsi que des exemples supplémentaires qui peuvent être utiles si vous souhaitez personnaliser davantage cette fonction.

81
Jaxidian

Si vous utilisez des espaces de travail locaux (TFS 2012+), vous pouvez maintenant utiliser le fichier .tfignore pour exclure les fichiers et dossiers locaux de l'archivage.

Si vous ajoutez ce fichier au contrôle de source, vous pouvez vous assurer que les autres membres de votre équipe partagent les mêmes paramètres d'exclusion.

Des informations complètes sur MSDN - http://msdn.Microsoft.com/en-us/library/ms245454.aspx#tfignore

Pour les paresseux:

Vous pouvez configurer les types de fichiers à ignorer en plaçant un fichier texte nommé .tfignore dans le dossier dans lequel vous souhaitez que les règles soient appliquées. Les effets du fichier .tfignore sont récursifs. Cependant, vous pouvez créer des fichiers .tfignore dans des sous-dossiers pour remplacer les effets d'un fichier .tfignore dans un dossier parent.

Les règles suivantes s'appliquent à un fichier .tfignore:

  • # commence une ligne de commentaire
  • Le * et? les caractères génériques sont pris en charge.
  • Une spécification de fichier est récursive sauf si elle est précédée du caractère \.
  • ! annule une spécification de fichier (les fichiers correspondant au modèle ne sont pas ignorés)

Exemple de fichier:

# 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
169
Richard Banks

Cela fait semble un peu lourd d’ignorer des fichiers (et des dossiers) dans Team Foundation Server. J'ai trouvé plusieurs façons de procéder (en utilisant TFS/Team Explorer/Visual Studio 2008). Ces méthodes fonctionnent également avec le type de projet ASP du site Web.

Une solution consiste à ajouter un élément nouveau ou existant à un projet (par exemple, cliquer avec le bouton droit de la souris sur le projet, ajouter un élément existant ou faire un glisser-déplacer de l'Explorateur Windows vers l'Explorateur de la solution), laisser TFS traiter le ou les fichiers ou le dossier, puis annuler l'opération en attente. changements sur le ou les article (s). TFS les annulera comme ayant un changement d'ajout en attente, et les fichiers resteront silencieux dans le projet et resteront en dehors de TFS.

Une autre méthode consiste à utiliser la commande Ajouter des éléments au dossier de l'Explorateur de contrôles source. Cela lance un petit assistant et, à l’une des étapes, vous pouvez sélectionner les éléments à exclure (bien que, je pense que vous deviez ajouter au moins un élément à TFS avec cette méthode pour que l’assistant vous permette de continuer).

Vous pouvez même ajouter une stratégie d’enregistrement de modèles interdits (sous Équipe -> Paramètres du projet d’équipe -> Contrôle de la source ... -> Stratégie d’enregistrement) pour interdire aux autres membres de l’équipe d’enregistrer certaines ressources par erreur.

70
Derek Morrison

Pour TFS 201:

Démarrez dans VisualStudio -Team Explorer, dans le dialogue PendingChanges, annulez les modifications dans l'état [add], ce qui doit être ignoré.

Visual Studio détectera à nouveau le ou les ajouts. Cliquez sur "détecté: x add (s)" - dans modifications exclues

Dans le dialogue "Promouvoir les modifications de cadrage", vous pouvez facilement exclure des fichiers et des dossiers à l'aide du menu contextuel. Les options sont:

  • Ignorer cet article
  • Ignorer par extension
  • Ignorer par nom de fichier
  • Ignorer par dossier (oui par dossier, TFS 2013 Update 4/Visual Studio 2013 Premium Update 4)

N'oubliez pas d'archiver le fichier .tfignore modifié.

Pour VS 2015/2017:

La même procédure: dans l'onglet "Modifications exclues" de TeamExplorer\Modifications en attente, cliquez sur Détecté: xxx add (s).

The Excluded Changes Tab in TeamExplorer\Pending Changes

La boîte de dialogue "Promouvoir les modifications du candidat" s'ouvre et vous pouvez cliquer avec le bouton droit de la souris sur le menu contextuel. Typo est corrigé maintenant :-)

45
gReX

J'ai trouvé le moyen idéal d'ignorer les fichiers dans TFS, comme le fait SVN.
Tout d’abord, sélectionnez le fichier que vous souhaitez ignorer (par exemple, le fichier Web.config).
Allez maintenant dans l’onglet du menu et sélectionnez:

Contrôle de fichier source> Avancé> Exclure web.config du contrôle de source

... et boum; votre fichier est définitivement exclu du contrôle de source.

5
Bharat

Je vais supposer que vous utilisez des projets de site Web. Ceux-ci analysent automatiquement leur répertoire de projet et jettent le tout dans le contrôle de source. Il n'y a aucun moyen de les arrêter.

Cependant, ne désespérez pas. Les projets d'application Web ne présentent pas ce comportement étrange et plutôt inattendu (imho: moronique). WAP est un complément pour VS2005 et vient directement avec VS2008.

Au lieu de modifier vos projets au format WAP, vous pouvez envisager de déplacer le dossier Assets hors du contrôle Source et dans une bibliothèque de documents TFS. Ne le faites que si le projet lui-même n’utilise pas directement les fichiers d’actifs.

4
NotMe