90 votes

Comment exclure un fichier spécifique du contrôle de source TFS ?

Nous avons plusieurs fichiers de configuration (app.DEV.config, app.TEST.config, etc) et un événement de pré-construction qui copie le bon fichier de configuration dans app.config. Il est évident que les fichiers de configuration spécifiques sont dans le contrôle de la source --- mais pour le moment, App.Config l'est aussi, et cela ne devrait pas être le cas.

Comment puis-je marquer ce fichier comme étant exclu du contrôle de la source, mais évidemment pas du projet ?

J'utilise VS 2005, et 2005 Team Explorer.

0 votes

1 votes

95voto

artfulhacker Points 1731

C'est facile dans TFS2012, créez un fichier .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.

0 votes

Comment faire pour ignorer récursivement le dossier packages, mais inclure packages/repositories.config ?

0 votes

@Maslow, si tu l'as, n'hésite pas à modifier ma réponse. Cela semble être un paramètre assez commun et nous devrions le mettre dans l'exemple.

0 votes

Est-ce qu'un fichier .tfignore dans la racine de la collection de projets s'applique automatiquement en bas de la hiérarchie même si ce dossier n'est pas mappé/téléchargé ?

47voto

PjL Points 629

Sélectionnez le fichier App.config dans l'explorateur de solutions, puis choisissez Fichier -> Contrôle de la source -> Exclure App.config du contrôle de la source.

1 votes

Exactement ce dont j'avais besoin pour ne pas stocker mes fichiers minifiés.

14 votes

Cela m'ennuie que cette option ne figure pas dans le menu contextuel ordinaire.

6 votes

Je n'ai pas cette option. :'-(

39voto

Jason Williams Points 31901

Il existe une politique de vérification (Forbidden Patterns Policy) dans les MS Power Tools qui vous permet de filtrer les noms de fichiers en fonction d'une expression régulière. Voir : Outils puissants de Microsoft Team Foundation Server

Bien que les politiques d'archivage ne soient pas totalement infaillibles, elles sont ce qui se rapproche le plus de l'application de règles définies par l'utilisateur, comme celles que vous recherchez.

(Et comme les autres l'ont dit, vous pouvez également masquer un fichier ou un dossier, ce qui signifie qu'il reste dans le contrôle de la source et est visible pour tous les autres membres de l'équipe, mais qu'il n'est pas copié sur votre PC jusqu'à ce que vous décidiez de le démasquer ; ou vous pouvez supprimer le fichier, ce qui signifie qu'il est supprimé des PC de tout le monde lorsqu'ils sont au dernier moment - mais aucune de ces options n'empêchera de tels fichiers d'être ajoutés au contrôle de la source en premier lieu).

1 votes

La fonction d'exclusion à l'échelle d'une équipe ou d'un projet que vous décrivez n'existe pas dans TFS, malheureusement. (à moins que ce ne soit dans une version plus récente de 2010 que la mienne) La boîte de dialogue "Source Control File Types" contrôle quels types de fichiers sont non fusionnables, c'est-à-dire verrouillés exclusivement.

0 votes

J'ai VSTS2005/2008 au travail, mais j'écris ceci à la maison, donc ma réponse est issue de ma mémoire plutôt faible - désolé ! Je viens de me rendre compte que ce dont vous avez besoin, c'est de la politique de vérification des "motifs interdits" de TFS Power Tools. Cela vous permet de faire correspondre les noms de fichiers en utilisant une regex et de bloquer l'archivage des noms de fichiers non désirés : msdn.microsoft.com/fr/us/teamsystem/bb980963.aspx#checkin

0 votes

Bien vu, j'avais oublié cette politique. Je vais modifier votre message pour lui donner de la visibilité.

13voto

Seth Points 69

Si tout ce que vous voulez est d'avoir un fichier dans le projet mais pas sous contrôle de source avec TFS, il suffit d'aller dans SourceControl, de supprimer ledit fichier, et d'annuler votre checkout du fichier du projet (il tentera de supprimer le fichier du projet également). Ensuite, enregistrez votre suppression du fichier que vous excluez. Dans l'explorateur de solutions, vous devriez voir qu'il n'y a pas d'icône de contrôle de source à côté du fichier que vous excluez. Le fichier du projet devrait répertorier un fichier à cet endroit, mais ce fichier ne devrait plus être sous contrôle de la source.

Gardez à l'esprit que toute autre personne verra maintenant un fichier manquant dans le projet lorsqu'elle sera la dernière.

7voto

joshua.ewer Points 3057

TFS vous permet de masquer au niveau du dossier/fichier. Lorsque quelque chose est masqué, TFS ne tentera pas de le synchroniser (un peu comme un svn:ignore).

Lorsque vous configurez votre espace de travail, masquez tout ce que vous voulez que TFS ignore. Un mode d'emploi plus détaillé est ici .

0 votes

Si seulement il y avait un moyen de masquer le dossier pour tous les espaces de travail... je ne vois pas de paramètre équivalent sous la rubrique sécurité.

0 votes

Vous ne pouvez pas masquer au niveau du fichier ; seulement au niveau du dossier.

0 votes

@dudeNumber4 Je crois que cette fonctionnalité a été désactivée dans les versions ultérieures de TFS, bien après la rédaction de la réponse initiale. Vous pouvez cependant essayer ce hack : social.msdn.microsoft.com/Forums/vstudio/en-US/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X