Comment ignorer les fichiers / répertoires dans TFS pour les éviter d'aller dans un dépôt source central?
est-il possible de configurer des fichiers/dossiers à ignorer par projet dans le contrôle à la source de TFS?
par exemple, j'ai un site Web avec un dossier actif que je ne veux pas aller dans le contrôle source. Ces biens sont maintenus par un système distinct. En outre, Je ne veux pas mettre plusieurs gigaoctets de ressources dans le contrôle source, mais j'ai besoin de quelques échantillons sur ma machine de développement, mais je ne veux pas vérifier ceux dans l'un ou l'autre.
si je travaille sur ce site Web tout en étant lié au contrôle des sources et je rafraîchis l'arbre, ces fichiers seront automatiquement ajoutés à nouveau
je veux empêcher que cela se produise.
6 réponses
pour VS2015 et VS2017
fonctionne avec TFS (on-prem) ou VSO (Visual Studio Online - l'offre hébergée par Azure)
la documentation NuGet fournit des instructions sur la façon d'accomplir ce et je viens de les suivre avec succès pour Visual Studio 2015 & Visual Studio 2017 contre VSTS (Azure-hosted TFS). Tout est entièrement mis à jour à partir de Nov 2016 août 2018.
je vous recommande de suivre les instructions de NuGet, mais juste pour récapituler ce que j'ai fait:
- assurez-vous que votre dossier
packages
n'est pas réservé à TFS. S'il en est, de le sortir de là. - 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). - crée un dossier
.nuget
. Vous pouvez utilisez Windows Explorer pour l'appeler.nuget.
pour qu'il puisse enregistrer avec succès sous.nuget
(il supprime automatiquement la dernière période), mais en essayant directement de l'appeler.nuget
peut ne pas fonctionner (vous pouvez obtenir une erreur ou il peut changer le nom, en fonction de votre version de Windows). - à l'intérieur de ce dossier, créez un fichier
NuGet.config
et 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>
- retournez dans votre dossier
.sln
et créez un nouveau fichier texte et nommez-le.tfignore
(si vous utilisez Windows Explorer, utilisez la même astuce que ci-dessus et nommez-le.tfignore.
) - mettez 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
- Enregistrer tous les de ce, de l'envoyer à la TSF, puis fermez & ré-ouvrez Visual Studio et L'Explorateur D'équipe ne doit plus identifier le dossier packages comme un check-in en attente.
- copier / coller via Windows Explorer le fichier
.tfignore
et le dossier.nuget
à toutes mes différentes solutions et je les ai engagés et je n'ai plus le dossierpackages
essayer de se faufiler dans mon contrôle source repo!
Nouvelle Personnalisation
bien que ce ne soit pas le mien, j'ai trouvé ce .tfignore
modèle par sirkirby pour être à portée de main. L'exemple dans ma réponse couvre le dossier Nuget packages
mais ce modèle inclut d'autres choses ainsi que fournit des exemples supplémentaires qui peuvent être utiles si vous souhaitez personnaliser cette suite.
si vous utilisez des espaces de travail locaux (TFS 2012+), vous pouvez maintenant utiliser le fichier .tfignore
pour exclure les dossiers et les fichiers locaux d'être enregistrés.
si vous ajoutez ce fichier au contrôle source, vous pouvez vous assurer que d'autres membres de votre équipe partagent les mêmes paramètres d'exclusion.
informations complètes sur MSDN - http://msdn.microsoft.com/en-us/library/ms245454.aspx#tfignore
pour les paresseux:
vous pouvez configurer quels types de fichiers sont ignorés en plaçant un texte fichier appelé
.tfignore
dans le dossier où vous souhaitez règles à appliquer. Le les effets du fichier.tfignore
sont récurrents. Toutefois, vous pouvez créer .tfignore les fichiers dans les sous-dossiers pour outrepasser les effets d'un.tfignore
fichier dans un dossier parent.Les règles suivantes s'appliquent à un .dossier tfignore:
#
commence une ligne de commentaire- * et ? les caractères génériques sont supportés.
- un filespec est récursif sauf s'il est préfixé par le caractère\.
- ! nie un filespec (les fichiers qui correspondent 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
It does semblent un peu encombrants pour ignorer les fichiers (et dossiers) dans le serveur de la fondation de L'équipe. J'ai trouvé quelques façons de le faire (en utilisant TFS / Team Explorer / Visual Studio 2008). Ces méthodes fonctionnent aussi avec le type de projet ASP du site web.
une façon est d'ajouter un élément nouveau ou existant à un projet (par exemple clic droit sur le Projet, Ajouter L'élément existant ou glisser-déposer de Windows explorer dans la Solution explorer), laisser TFS traiter le fichier(s) ou dossier, puis annuler les changements en attente sur le (s) Point (S). TFS va les dé-marquer comme ayant un add en attente de changement, et les fichiers vont s'asseoir tranquillement dans le projet et rester en dehors de TFS.
une autre façon est D'ajouter des éléments à la commande Folder de L'Explorateur de contrôle Source. Cette lance un petit assistant, et sur l'une des étapes, vous pouvez sélectionner les éléments à exclure (même si je pense que vous devez ajouter au moins un élément à TFS avec cette méthode pour l'assistant pour vous permettre de continuer).
vous pouvez même ajouter une politique d'enregistrement des motifs interdits (sous Team- > paramètres du projet Team - > contrôle des sources... - >Politique d'enregistrement) pour interdire aux autres membres de l'équipe de vérifier par erreur certains biens.
pour TFS 2013 :
Start in VisualStudio - Team Explorer , dans le dialogue PendingChanges défaire les changements avec l'état [add], qui doivent être ignorés.
Visual Studio détectera à nouveau L'Add(s). Cliquez sur "détecté: x ajouter (s) " - dans changements exclus
in the open" Promote Cadidate Changements " - dialogue vous pouvez facilement exclure des dossiers et des dossiers avec le Contextmenu. Les Options sont:
- ignorer cet article
- ignorer par extension
- ignorer par nom de fichier
- Ignorer par ffolder (oui ffolder, TFS 2013 mise à Jour 4/Visual Studio 2013 Premium mise à Jour 4)
N'oubliez pas d'Enregistrer le changement .tfignore-File.
pour VS 2015/2017 :
la même procédure: Dans L'onglet" Modifications exclues " de TeamExplorer\modifications en attente ajouter (s)
le dialogue "promouvoir les changements de candidat" s'ouvre, et sur les entrées Vous pouvez Droit-Cliquer pour le Contextmenu. Faute de frappe est fixé maintenant :-)
je vais supposer que vous utilisez des projets de Site web. Ceux-ci rampent automatiquement leur répertoire de projet et tout jeter dans le contrôle 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: moronic). WAP est un addon pour VS2005 et est livré directement avec VS2008.
comme alternative au changement de vos projets en WAP, vous pourriez envisagez de déplacer le dossier de biens hors du contrôle de Source et dans une bibliothèque de documents TFS. Ce n'est que si le projet lui-même n'utilise pas directement les fichiers d'actifs.
j'ai trouvé le moyen parfait d'ignorer les fichiers dans TFS comme SVN le fait.
Tout d'abord, sélectionnez le fichier que vous voulez ignorer (par exemple le Web.config).
Maintenant, allez dans l'onglet menu et sélectionnez:
contrôle des sources des fichiers > avancé > exclure web.configuration de la source de contrôle
... et boom; votre dossier est en permanence exclu du contrôle à la source.