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.
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:
packages
n'est pas affecté à TFS. Si c'est le cas, sortez-le de là..sln
sauf indication contraire (les instructions de NuGet ne sont pas tout à fait claires à ce sujet)..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. NugetNuGet.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>
.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.
).. 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
.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!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.
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
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.
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:
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).
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 :-)
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.
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.