Comment ignorer les fichiers / répertoires dans TFS pour les empêcher d’accéder au référentiel source central?

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

Par exemple, j’ai un site Web avec un dossier d’actifs que je ne souhaite pas utiliser pour le contrôle de code 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 des sources, mais j’ai besoin de quelques échantillons sur ma machine de développement, mais je ne veux pas non plus les vérifier.

Si je travaille sur ce site Web tout en étant lié au contrôle de code source et que je rafraîchit l’arborescence, ces fichiers seront automatiquement ajoutés à nouveau

Je veux empêcher cela.

    Pour VS2015 et VS2017

    Fonctionne avec TFS (on-prem) ou VSO (Visual Studio Online – offre hébergée sur Azure)

    La documentation de NuGet fournit des instructions sur la manière de procéder et je les ai suivis avec succès pour Visual Studio 2015 et Visual Studio 2017 contre VSTS (TFS hébergé sur Azure). Tout est entièrement mis à jour à partir de novembre 2016 août 2018.

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

    1. Assurez-vous que votre dossier de packages n’est pas validé pour 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 complètement claires à ce sujet).
    3. Créez un dossier .nuget . Vous pouvez utiliser Windows Explorer pour le nommer .nuget. pour qu’il soit enregistré avec succès en tant que .nuget (il supprime automatiquement la dernière période), mais essayer de le nommer directement .nuget peut ne pas fonctionner (vous pouvez obtenir une erreur ou changer le nom, selon votre version de Windows).
    4. Dans ce dossier, créez un fichier NuGet.config et ajoutez le contenu suivant et enregistrez-le:

    NuGet.config:

           
    1. Retournez dans le dossier de votre .sln et créez un nouveau fichier texte et nommez-le .tfignore (si vous utilisez Windows Explorer, 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 sur TFS, puis fermez et rouvrez Visual Studio et Team Explorer ne devrait plus identifier le dossier des packages comme un enregistrement en attente.
    2. Copier / coller via l’Explorateur Windows le fichier .tfignore et le dossier .nuget vers toutes mes différentes solutions et les .tfignore et je n’ai plus le dossier des packages essayant de me glisser dans mon repo de contrôle de code source!

    Personnalisation supplémentaire

    Bien que n’étant pas à moi, j’ai trouvé ce modèle .tfignore par sirkirby très pratique. L’exemple de ma réponse couvre le dossier des packages Nuget packages mais ce modèle inclut d’autres éléments et fournit des exemples supplémentaires qui peuvent s’avérer utiles si vous souhaitez les personnaliser davantage.

    Si vous utilisez des espaces de travail locaux (TFS 2012+), vous pouvez désormais utiliser le fichier .tfignore pour exclure les dossiers et fichiers locaux.

    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 parameters d’exclusion.

    Détails complets sur MSDN – http://msdn.microsoft.com/en-us/library/ms245454.aspx#tfignore

    Pour les paresseux:

    Vous pouvez configurer les types de fichiers ignorés en plaçant un fichier texte appelé .tfignore dans le dossier dans lequel vous souhaitez appliquer les règles. Les effets du fichier .tfignore sont récursifs. Toutefois, 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 commentaires
    • 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éfixée par le caractère \.
    • ! nie une filepec (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 

    Il semble un peu compliqué d’ignorer les fichiers (et les dossiers) dans Team Foundation Server. J’ai trouvé deux manières de le faire (en utilisant TFS / Team Explorer / Visual Studio 2008). Ces méthodes fonctionnent également avec le type de projet ASP du site Web.

    Une façon consiste à append un élément nouveau ou existant à un projet (par exemple, clic droit sur un projet, Ajouter un élément existant ou glisser-déposer depuis l’explorateur Windows dans l’explorateur de solution), laisser TFS traiter le fichier ou le dossier, puis annuler modifications sur les articles. TFS les désélectionnera comme ayant un changement d’ajout en attente, et les fichiers restront silencieux dans le projet et restront en dehors de TFS.

    Une autre façon consiste à utiliser la commande Ajouter des éléments au dossier de l’Explorateur de contrôle de code source. Cela lance un petit assistant et sur l’une des étapes, vous pouvez sélectionner des éléments à exclure (même si, je pense que vous devez append au moins un élément à TFS avec cette méthode pour que l’assistant vous permette de continuer).

    Vous pouvez même append une stratégie d’archivage de motifs interdits (sous Équipe -> Paramètres de projet d’équipe -> Contrôle de code source -> Politique d’enregistrement) pour interdire aux autres membres de l’équipe de vérifier par erreur certains actifs.

    Pour TFS 2013 :

    Commencez dans VisualStudio- Team Explorer , dans la boîte de dialog PendingChanges, annulez les modifications avec l’état [add], qui doivent être ignorées.

    Visual Studio détectera à nouveau le ou les ajouts. Cliquez sur “Détecté: x add (s)” -in changements exclus

    Vous pouvez facilement exclure des fichiers et des dossiers avec le menu contextuel. Les options sont les suivantes:

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

    N’oubliez pas de vérifier le fichier .tfignore modifié.

    Pour VS 2015/2017 :

    La même procédure: Dans l’onglet “Modifications exclues” dans TeamExplorer \ Modifications en attente, cliquez sur Détecté: xxx add (s)

    L'onglet des modifications exclues dans TeamExplorer \ Modifications en attente

    La boîte de dialog “Promouvoir les modifications des candidats” s’ouvre et vous pouvez cliquer avec le bouton droit de la souris sur le menu contextuel. Typo est corrigé maintenant 🙂

    Je suppose que vous utilisez des projets de sites Web. Ceux-ci explorent automatiquement leur répertoire de projet et jettent tout dans le contrôle des sources. 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 (à mon humble avis). WAP est un addon sur VS2005 et vient directement avec VS2008.

    Au lieu de changer vos projets en WAP, vous pouvez envisager de déplacer le dossier Assets hors du contrôle Source et dans une bibliothèque de documents TFS. Ne faites cela que si le projet n’utilise pas directement les fichiers de ressources.

    J’ai trouvé le moyen idéal pour 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).
    Maintenant, allez à l’onglet du menu et sélectionnez:

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

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