Pouvez-vous faire un TFS obtenir sans avoir besoin d'un espace de travail?
Je suis en train de changer nos scripts de génération de l'utilisation de SourceSafe à TFS sans l'aide de MsBuild (encore).
Un hic, c'est que le répertoire d'espace de travail est renommé et archivé par les scripts, ce qui rend TFS crois qu'il n'a pas besoin d'obtenir de tous les fichiers. Même avec la /force drapeau il devient simplement les répertoires sans obtenir le code source des fichiers.
Je suis actuellement en utilisant
TF.exe get "Product/Main/Project1" /force /recursive /noprompt
Pour me sauver la gestion des espaces de travail dans les scripts ou à l'aide de répertoires intermédiaires, personne ne sait d'une commande que vous pouvez obtenir de répertoires et de code sans avoir besoin d'un espace de travail?
OriginalL'auteur Matt -The Hat- McVitie | 2011-01-17
Vous devez vous connecter pour publier un commentaire.
Il n'est pas possible d'exécuter un
tf get
sans un espace de travail. La raison en est que le serveur a besoin de connaître la correspondance entre le serveur sentiers et chemins locaux.Si vous travaillez avec un grand nombre de fichiers, il n'est pas une bonne idée:
La raison pour cela est que chaque fois que vous faites une
Get
, le serveur conserve les fichiers, dans les versions qui ont été téléchargés à qui l'espace de travail. Si vous n'avez jamais nettoyer ces espaces de travail, puis la table qui stocke cette information va croître au fil du temps.En outre, si vous créez & la suppression d'un espace de travail tout le temps, le serveur doit écrire toutes ces lignes, puis de les supprimer lorsque vous avez terminé. Ce n'est pas nécessaire.
Vous devriez vraiment essayer et de réutiliser le même espace de travail à chaque fois. Si vous le faites, le serveur est très efficace que de vous envoyer des fichiers qui ont été modifiés depuis le dernier téléchargement. Même si votre build, c'est passer d'une branche à l'autre, vous pouvez utiliser
tf get /remap
qui est parfois plus efficace si les branches de partager des fichiers communs.Même si elle ne résout pas votre problème, il est possible de lister les fichiers et télécharger les fichiers sans un espace de travail.
À la liste des fichiers:
Pour télécharger un fichier:
Créative de fichier de commandes, vous pouvez les cordes de ces deux ensemble avec un
FOR
de commande. Cependant, je vous recommande d'essayer de résoudre votre espace de travail en premier lieu le problème, puisque c'est la façon que TFS a été conçu pour être utilisé.avez-vous pensé à s'engager à visual studio alm stackexchange proposition? area51.stackexchange.com/proposals/15894/...
Cette solution est plus propre, car il s'agit uniquement d'obtenir (pas d'opérations de déplacement de fichier nécessaire): stackoverflow.com/questions/10624031/...
OriginalL'auteur Grant Holliday
Un espace de travail est une correspondance entre la source de l'emplacement du dépôt et de la localisation du système de fichiers, de sorte qu'aucun de vous ne peut pas s'en sortir sans l'aide d'un espace de travail. Mais vous pouvez facilement l'installer et à démonter un espace de travail lorsque vous en avez besoin.
Ici est une simple TFS tâche-je utiliser pour obtenir ma base de données les fichiers source de TFS avant de faire quelques substitutions de texte et de les intégrer dans une base de données de package de mise à jour. Vous pouvez facilement traduire de ce quelle que soit la syntaxe de votre version actuelle scripts nécessitent:
TFS est votre source référentiel, mais vous n'avez pas explicitement mention de ce que vos scripts de génération ont été conçus pour. Vous devriez vraiment faire migrer vers un build TFS script, vous pouvez simplifier votre construire, par exemple, vous n'aurez pas à vous soucier de la cartographie des espaces de travail ou d'obtenir le dernier code source parce que TFS n'est que pour vous, tout ce que vous avez à vous préoccuper est de toutes les étapes de génération personnalisée et, éventuellement, l'archivage de vos résultats.
OriginalL'auteur slugster
Neno Loje créé un petit utilitaire qui fait exactement ce dont vous avez besoin. Pour démarrer il peut également supprimer toute source de contrôle des fixations de la solution et le fichier de projet, si vous avez besoin que.
OriginalL'auteur jessehouwing
C# a la VersionControlServer bibliothèque et vous pouvez utiliser VersionControlServer.GetItems appel pour aller chercher TFS Article. Si le ItemType est Fichier, puis d'appeler DownloadFile pour récupérer le fichier.
GetItems
.GetItems
obtient les informations au sujet de laItem
s dans TFS. Il ne télécharge pas pour le système de fichiers.Désolé, j'ai omis d'info. Vous pouvez utiliser GetItems pour obtenir le fichier d'informations système, alors vous pouvez faire une boucle de l'élément info et appel DownloadFile.
OriginalL'auteur Shiv
Je ne sais pas pourquoi votre buildscripts supprimer l'espace de travail répertoires à chaque fois. Mais pour répondre à votre question, je ne pense pas que vous pouvez obtenir le code source de TFS sans un espace de travail. Peut-être que vous pouvez essayer de créer un worspace à chaque fois avant de vous obtenez. La commande est
OriginalL'auteur softveda
Vous pouvez le faire facilement avec SourceSafe: obtenir une version à un répertoire dont vous voulez. Et c'est très souvent très pratique. Il y a souvent des occasions pour lesquelles on voudrait le faire. La honte (si) TFS ne supporte pas, c'est une fonctionnalité manquante, à mon humble avis.
OriginalL'auteur Ellis