Nous utilisons un fichier batch pour générer du code, et il extrait automatiquement les fichiers générés à partir de Team Foundation Server (TFS) afin de pouvoir les régénérer. La majorité de ces fichiers ne sont pas modifiés, mais le générateur ne le sait pas à l'avance.
La commande "tfs undo" annule l'extraction, mais vous demande si certaines ont été modifiées (ce que nous ne voulons pas faire). Nous ne souhaitons pas non plus archiver immédiatement les fichiers générés.
Existe-t-il une commande (ou une série de commandes) pour annuler l'extraction de tous les fichiers non modifiés sans demander à l'utilisateur?
tfs
version-control
tfvc
Robert Wagner
la source
la source
ADD
modifications sans invite (voir la réponse de Ray ).Réponses:
Jetez un œil à la commande Annuler unchanged des outils d'alimentation de Team Foundation Server Août 2011
Merci Matt Florence pour la mise à jour du lien.
Merci Ray Vega pour la syntaxe réelle .
la source
Installez Team Foundation Server Power Tools et exécutez ce qui suit à partir de la ligne de commande à l'aide de tfpt.exe à la racine du répertoire de l'espace de travail de votre projet:
c:\myProject> tfpt uu . /noget /recursive
L'inclusion
/noget
est fortement recommandée car elle empêche une mise à jour forcée de tous les fichiers de votre projet qui, en fonction du nombre total, peut prendre un temps extrêmement long.la source
cd
à l'endroit où se trouve votre répertoire d'espace de travail (par exemple, le mien étaitc:\myProject
), soit à l'inclure explicitement aprèsuu
(en remplaçant le point.
par lui)Merci @mike & @ray,
Je souhaite vous faciliter la tâche.
Dans VS, dans le menu Outils, cliquez sur "Outils externes".
Cliquez sur Ajouter.
Entrez le titre.
Commande: tfpt.exe
Arguments: uu. / noget / récursif
Répertoire initial: [vous pouvez choisir à partir du bouton fléché].
Deux nouvelles commandes sont ajoutées au menu Outils.
Utilisez-les au besoin.
Prendre plaisir,
Ofir
la source
Visual Studio saura si le fichier extrait a des modifications ou aucune.
AVERTISSEMENT: cette méthode supprime également les nouveaux fichiers, c'est-à-dire les fichiers qui ne sont pas encore archivés dans TFS. Si vous souhaitez conserver ces fichiers, excluez-les simplement de l'ensemble de fichiers que vous «annulez».
la source
Be aware that this method also removes added files that are not yet checked in from TFS.
... ouais, c'est un disqualifiant assez immédiat.Mise à jour de cette question avec une réponse lors de l' utilisation de TFS2017 et VS2017 / VS2019 uniquement.
Les outils électriques n'existent pas pour TFS 2017 et les anciens ne peuvent pas bien fonctionner avec lui, mais apparemment la plupart des fonctionnalités ont été déplacées vers VS2017 lui-même ou des plugins (voir ci-dessous).
Extension Visual Studio 2017/2019
Certaines actions telles que l'annulation de fichiers inchangés ont été déplacées vers un
extension pour VS2017
extension pour VS2019
Emplacement du bouton "Annuler les modifications":
Bug connu
Vous devez ouvrir l '«Explorateur de contrôle de source» (et le laisser ouvert) pour que «Undo Unchanged» s'affiche dans le menu Action de la vue Pending Changes. rapporté ici .
Extension d'intégration Windows Shell
En outre, vous pouvez toujours configurer l'intégration du shell Windows via un programme d' installation distinct qui n'est plus lié à TFS Power Tools.
L'intégration du shell Windows ne fonctionne pas exactement de la même manière que les outils électriques avant, mais les actions les plus importantes ont fonctionné pour moi.
la source
Si vous réintégrez simplement tous les fichiers que vous avez extraits, TFS est suffisamment intelligent pour déterminer ceux qui changent et les inclure uniquement dans l'ensemble de modifications enregistré sur le serveur.
TFS le fait en comparant les hachages MD5 du contenu des fichiers avant et après l'archivage.
Tout cela suppose que votre processus de génération met à jour purement le même ensemble de fichiers, c'est-à-dire que vous n'aurez jamais le cas où un fichier qui a été généré dans une génération précédente n'est pas nécessaire dans la génération suivante (c'est-à-dire que vous voudriez suspendre une suppression pour ce fichier) ou que les fichiers changent de nom.
Si votre processus peut potentiellement nécessiter la suppression de fichiers, le mieux serait de consulter la commande Team Foundation Power Tools ( tfpt ) et d'utiliser la commande tfpt online qui ne récupérera que les fichiers qui ont changé et sera suffisamment intelligente pour pend supprime pour tous les fichiers qui ne sont plus nécessaires ou a changé de nom et ajoute pend.
Bonne chance,
Martin.
la source
Attention, l'annulation de TFS ne rétablira pas la valeur «Date de modification» du système de fichiers. C'est très frustrant, surtout si vous utilisez des outils tels que robocopy pour synchroniser des machines distantes. Même après avoir annulé votre extraction, si vous avez enregistré le fichier en mettant ainsi à jour la valeur «Date de modification», cette valeur mise à jour restera même après une extraction annulée.
la source
Il y a quelques points concernant l'option uu pour tfpt (recommandé dans la plupart des autres réponses) qui n'étaient pas clairs pour moi au début. Tout d'abord, c'est l'aide de la ligne de commande accessible avec la commande
tfpt uu /?
Maintenant, permettez-moi de décomposer la commande qui est recommandée dans les autres réponses.
tfpt uu
spécifie que nous souhaitons utiliser la commande 'Undo Unchanged'..
indique (je suppose) que le répertoire de travail actuel doit être utilisé comme spécification de fichier./noget
garantit que «obtenir la dernière version» n'est pas appelé avant d'annuler les fichiers inchangés./recursive
garantit que non seulement la spécification de fichier sera prise en compte, mais tous les dossiers et fichiers enfants récursifs. Cela semble dépendre de la spécification du fichier - s'il n'y en a pas, tout l'espace de travail est traité.Il y a donc quelques choses à noter ici concernant la commande d'en haut ...
J'ai trouvé que la commande suivante fonctionne le mieux pour moi - elle traitera tout l'espace de travail.
tfpt uu /noget
Notez qu'il dépend toujours du répertoire de travail dans lequel tfpt l'utilise pour déterminer quel espace de travail doit être traité. Mais tant que vous fournissez un chemin vers un fichier ou un dossier dans l'espace de travail, vous êtes prêt à partir.
la source
Je peux voir l'approche de Ray LionFang ci-dessus. Je ne peux pas faire de commentaire car je n'ai pas le représentant. Bien que j'aime cette approche car il n'y a pas de changements requis pour les outils, etc.
....... Il y a un problème avec cette approche dans la mesure où le fait de cliquer sur "Non à tous" conserve quelques fichiers qui ne sont pas modifiés. Il semble faire quelque chose comme Annuler les fichiers non modifiés jusqu'à ce qu'il atteigne le premier fichier réellement modifié, puis ignore le reste des fichiers non modifiés, si cela a du sens. Je n'ai vu cet effet que de temps en temps.
Une solution potentielle consiste à suivre le processus ci-dessus, mais au lieu de cliquer sur "Non à tous", appuyez sur "Non" pour chaque fichier. Étant donné que cela peut prendre un certain temps en fonction du nombre de fichiers avec lesquels vous travaillez, ce que je fais normalement est de maintenir "ALT + N", et cela accélère simplement à travers tous les fichiers tout en annulant TOUS les fichiers non modifiés.
la source
Pour autant que je sache, dans TFS, si vous extrayez un projet d'équipe, l'ensemble du projet est extrait et vous n'avez pas le contrôle des fichiers qui sont supprimés. Si vous souhaitez empêcher l'archivage de certains fichiers, vous pouvez les verrouiller.
Au travail, nous détestons tous TFS.
la source