web-dev-qa-db-fra.com

Forcer TFS à détecter les changements

On dirait que cela devrait être quelque chose de très simple, mais je ne trouve pas comment faire cela ...

J'ai apporté des modifications à plusieurs fichiers répartis dans un dépôt en utilisant un script que j'ai écrit. Le problème est que TFS dans sa sagesse infinie ne pense pas que les fichiers ont changé. En plus de rechercher manuellement chaque fichier et de cliquer sur «Valider pour modification», existe-t-il un moyen de demander à TFS de tout simplement analyser à nouveau et détecter les modifications?

34
Ilia G

Une comparaison de dossiers (Fichier-> Contrôle de code source-> Comparer ...) devrait faire l'affaire. Sélectionnez le dossier principal à partir duquel démarrer la comparaison, puis sélectionnez la comparaison avec la dernière version. Le résultat doit montrer les fichiers qui sont modifiés et indiquer s'ils ont été extraits ou non.

19

TFS a une commande "réconcilier" pour cela. Voir https://stackoverflow.com/a/22860674/932282 pour une réponse complète.

16
mhu

Espace de travail local

Vous devez travailler avec un local Workspace. Voici comment gérer les espaces de travail:

visualstudio.com: "Créer et utiliser des espaces de travail" .

Lorsque vous ajoutez ou modifiez l’espace de travail, cliquez sur Advanced >>. Ensuite, vous définissez Location: à Local.

Désormais, lorsque votre script ou quoi que ce soit d'autre modifie des fichiers en dehors de Visual Studio, votre espace de travail détecte automatiquement la changes.

Il détecte également adds ou deletes mais vous devez les inclure manuellement dans votre Pending Changes avec le lien sous Excluded Changes

Detected adds under Pending Changes in Team Explorer

MAIS FAIS ATTENTION. Lorsque adds ou deletes sont détectés et que vous les ajoutez à votre Pending Changes, les fichiers ne sont pas automatiquement inclus dans votre projet. Vous pouvez donc les archiver dans TFS, mais ils ne sont pas répertoriés sous le Solution Explorer.

Matt Burke a une solution à ce problème:

mattburkdev.com: "Inclure automatiquement tous les fichiers dans un dossier dans Visual Studio"

Pour modifier le fichier de projet, cliquez avec le bouton droit de la souris sur votre projet, sélectionnez chèque Unload Project, cliquez de nouveau avec le bouton droit de la souris et choisissez Edit. Après avoir édité les fichiers du projet, enregistrez et fermez-le. Cliquez ensuite avec le bouton droit de la souris et choisissez Load Project.

Mais avec cela, vous devez également faire attention, car le projet ne recherche que les nouveaux fichiers à inclure dans ces dossiers, lorsque vous chargez le projet et non pendant que le projet est ouvert. Ainsi, lorsque certains fichiers sont ajoutés en dehors de Visual Studio, il vous suffit de recharger le projet.


Espace de travail du serveur

Mais si vous devez vous en tenir à un espace de travail serveur pour une raison quelconque, j'ai un autre truc pour vous:

FIRST: Consultez tous les fichiers qui ont peut-être des modifications en attente (il est préférable d’extraire de nombreux fichiers). Ensuite, allez dans Team Explorer -> Modifications en attente et choisissez tous les fichiers que vous venez d'extraire. Ensuite, choisissez "Annuler les modifications". Après cela, vous obtenez un message "Confirmer l'annulation de la commande". Ce message apparaît UNIQUEMENT pour les fichiers, qui ont réellement changé! Appuyez sur "NO" pour chaque fichier ou sur "No to All".

FINALLY: Sous les modifications en attente, tous les fichiers sont supprimés de la liste, à l'exception de ceux contenant des modifications en attente.


J'espère que je pourrais aider quelqu'un et que vous n'aviez pas à chercher cette solution tant que je devais ^^

7
Silvan Egger

Si l'une de vos modifications a eu lieu alors que vous étiez hors ligne, vous pouvez aller dans Fichier> Contrôle de code source> Aller en ligne. Tous les fichiers seront vérifiés en vue de leur modification.

3
heneryville

Si rien de ce qui précède ne fonctionne, vous pouvez également essayer de relier vos projets en allant dans Fichier -> Contrôle de la source -> Avancé -> Modifier le contrôle de la source. 

2
arviman

J'ai eu ce problème assez longtemps lorsque j'ai déplacé le projet d'un PC à un autre . La solution consistait à supprimer les fichiers temporaires créés par TFS dans le dossier de la solution . Supprimer .vs et le dossier caché $tf.

En cas d'échec, copiez le dossier de votre solution sur un autre ordinateur local, supprimez tous les fichiers de la solution, obtenez la dernière version du serveur TFS, puis du dossier copié récupérez simplement les fichiers nécessaires et modifiés et remettez-les dans le dossier de solution (cela écrasera certains fichiers).

Après tout, n'oubliez pas de vérifier les correspondances de projet et si tout semble correct, cliquez avec le bouton droit de la souris sur la solution et sur l'option 'Ajouter au contrôle de source'.

0
AmiNadimi

Dans Visual Studio 2015:

Source Control -> Advances -> Refresh Status

 Source Control -> Advances -> Refresh Status

0
Orhan