web-dev-qa-db-fra.com

Comment puis-je 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 fichier de configuration correct dans app.config. De toute évidence, les fichiers spécifiques à la configuration sont dans le contrôle de code source - mais pour le moment, il en est de même pour App.Config, et cela ne devrait pas l'être.

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

J'utilise VS 2005 et 2005 Team Explorer.

87
Ralph Shillington

Il existe une stratégie d’archivage (stratégie relative aux modèles interdits) dans 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 stratégies d’archivage ne soient pas totalement infaillibles, c’est la chose la plus proche que TFS puisse appliquer pour appliquer des règles définies par l’utilisateur, comme ce que vous recherchez.

(Et comme les autres l’ont déjà dit, vous pouvez également masquer un fichier ou un dossier, ce qui signifie qu’il reste dans le contrôle de code source et est visible par tous les autres membres de l’équipe; peut supprimer le fichier, ce qui signifie qu'il est supprimé des ordinateurs de tout le monde quand ils arrivent au plus tard - mais aucune de ces options n'empêchera l'ajout de tels fichiers au contrôle de source en premier lieu)

39
Jason Williams

C'est facile dans TFS2012, créer 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.
94
artfulhacker

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

43
PjL

Il existe une option difficile à trouver:

1. Sélectionnez le ou les fichiers dans l'explorateur de solutions

2. Allez dans Fichier -> Contrôle de la source -> Avancé

Path To Exclude

et le voici

Here is the Exclude

Gardez à l'esprit: Si vous cliquez avec le bouton droit de la souris sur un fichier dans l'Explorateur de solutions, vous ne trouvez que "les options les plus importantes", pas toutes :)

21
Felix Keil

Si tout ce que vous voulez, c’est d’avoir un fichier dans le projet mais pas sous contrôle de source avec TFS, allez simplement dans SourceControl, supprimez-le et annulez votre extraction du fichier de projet (il essaiera de supprimer le fichier bien). Enregistrez ensuite 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 en regard du fichier que vous excluez. Le fichier de projet doit répertorier un fichier à cet emplacement, mais ce fichier ne doit plus être sous contrôle de source.

Gardez à l'esprit que toute autre personne verra maintenant un fichier manquant dans le projet à la fin de celle-ci.

13
Seth

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).

Lors de la configuration de votre espace de travail, masquez tout ce que vous souhaitez que TFS ignore. Un tutoriel plus détaillé est ici .

7
joshua.ewer

Cela a fonctionné pour moi:

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époser de l'Explorateur Windows dans 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.

Source: = "> Comment puis-je exclure un fichier spécifique du contrôle de source TFS

5
Huilaaja

Cette question a été posée il y a quelque temps, mais elle concerne le même type de problème que je rencontrais.

Le problème: 

  • Nous voulons vérifier notre code.
  • Nous voulons ensuite construire notre projet .
    • Lors de notre construction, nous dépendons de Build Events pour déplacer les fichiers afin de disposer des fichiers appropriés pour le processus de construction.
  • Lorsque notre événement de construction essaie de copier les fichiers, nous obtenons des erreurs d'accès refusé.

La raison:

  • Le plug-in Visual Studio de Team Foundation Server modifie l'attribut Lecture seule de nos fichiers sur READONLY TRUE lorsque nous archivons nos fichiers.

Exemple d'événement de construction:

  • copie "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"

Ci-dessus, nous devons simplement déplacer un fichier de notre chemin de construction cible (les dossiers bin\debug ou bin\release) vers notre dossier de projet. Dans mon cas, c'était pour que je puisse inclure des fichiers générés par le projet dans mon installateur. Mon installateur ne les récupérait pas dans le cadre de la sortie du projet.

Le correctif: (m'a presque donné un coup de pied au visage quand j'ai compris cela)

Nouvel événement de construction:

  • attrib -R "$ (ProjectDir) SomeFile.ext"
  • copie "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"
  • attrib + R "$ (ProjectDir) SomeFile.ext"

Nous nous amusons tous avec Build Events, non? Ci-dessus, je fais simplement 2 choses, je supprime l'attribut lecture seule, maintenant les fichiers ne sont pas lus seulement. Copiez mon fichier comme je le voulais à l’origine. Remplacez ensuite l'attribut en lecture seule (facultatif, je suppose) pour que Visual Studio et Team Foundations restent satisfaits.

Et oui ... je me donne encore un coup de pied dans le visage.

2
Rob K.

Visual Studio 2013 (et 2012)

Cette fonctionnalité est disponible en sélectionnant le (s) fichier (s) et en allant sur:

File > Source Control > Advanced > Exclude ... from Source Control
2
Evan Mulawski

J'ai un problème similaire, mon App.config contenait des données sensibles (par exemple, nom d'utilisateur) que ces données ne doivent pas être synchronisées avec TFS.

L'article Les meilleures pratiques pour le déploiement de mots de passe et d'autres données sensibles sur ASP.NET et Azure App Service décrit une bonne approche pour éviter ce problème:

Utilisez l'attribut "fichier" de l'élément "appSettings" pour référencer un fichier de configuration qui n'est pas ajouté au contrôle de source

0
thuld

Si vous avez une version plus ancienne que TFS2012 et ne pouvez donc pas créer de fichier .tfignore ou utiliser l'option File > Source Control > Advanced > Exclude …, vous pouvez essayer ceci:

  • Faites une copie du fichier cible dans l'Explorateur Windows.
  • Annuler les modifications en attente (le cas échéant) sur le fichier cible dans Team Explorer/Visual Studio.
  • Supprimez le fichier cible dans l'Explorateur Windows.
  • Déplacez la copie du fichier cible à l'emplacement du fichier cible supprimé et renommez-le afin qu'il porte le même nom que le fichier cible supprimé.

TFS semble maintenant ignorer les modifications dans le fichier cible. Si vous devez rééditer le fichier, n'utilisez pas Visual Studio, car TFS le replacera dans la liste des fichiers avec les modifications en attente.

0
Protector one