2017-10-16 2 views
2

Sur l'une de nos versions, nous lançons un processus automatisé qui vérifie et vérifie automatiquement certains fichiers.Archiver plusieurs fichiers avec tf.exe dans un ensemble de modifications

Tout cela fonctionne assez bien, mais à ce moment, nous courons la commande checkin qui ressemble à la

suivante
tf.exe checkin /force /comment:"foo" /noprompt /bypass /override:"bar" 

Tous les fichiers avec un statut Pending se seront vérifiés dans.

I J'aimerais rendre ce script un peu plus précis et ne vérifier que les fichiers (2 au total) que nous changeons en cours de construction, donc nous savons avec certitude qu'aucun fichier ne sera enregistré "par accident".

J'ai déjà vu que nous pouvons spécifier un seul nom de fichier avec le checkincommand, mais nous obtiendrons 2 différents changesets dans TFS, au lieu de 1. Nous aimerions vraiment avoir 1 changeset, contenant les deux fichiers modifiés les changements appartiennent les uns aux autres.

Des idées sur la façon d'aborder cela?

ajout mineur/solution à court terme

Pour le moment, je l'ai résolu notre « problème » en spécifiant le dossier dans lequel nos fichiers modifiés sont situés, qui ressemble un peu comme ce

tf.exe checkin "/my/folder/location/" /recurse /force /comment:"foo" /noprompt /bypass /override:"bar" 

Notez l'emplacement du dossier et le paramètre /recurse ajouté.

Répondre

1

Vous séparez simplement les fichiers par des espaces:

tf.exe checkin file1.ext file2.ext /force /Comment:"foo" /noprompt /bypass /override:"bar" 

Le documentation n'est pas clair sur ce point, mais il pourrait être une spécification générale d'un itemspec qu'il peut y avoir plusieurs éléments.

Voir question similaire à propos de votre commande: Is there a way to check-out multiple files from various folders in TFS in a single operation

Comme mentionné par d'autres que vous pourriez rencontrer des problèmes avec la ligne de commande étant plus longue que le système prend en charge, dans ce cas, vous pourriez avoir besoin de regarder d'autres solutions.

+0

Merci, cela ressemble à quelque chose que je peux utiliser, ne pouvait pas faire cela de la documentation . Vous n'avez pas trouvé votre question lors de la recherche. –

0

cmd.exe a une limite sur combien de temps une commande peut être. L'utilisation de l'API de contrôle de version, ou simplement «tf checkin/i» (sans arguments) est susceptible d'être un meilleur choix que de passer beaucoup de noms de fichiers longs.

Il est normal qu'un fichier soit automatiquement extrait en raison d'un changement et, en fin de compte, que le contenu du fichier revienne à son état d'origine. À ce stade, vous verriez le message sur les contenus identiques sur la comparaison. Vous pouvez également utiliser la commande tfpt uu /noget /r * pour ignorer les fichiers identiques aux originaux. TFS Power Tools doit être installé pour que cela fonctionne. Note: il n'y a pas d'outil électrique TFS 2017.

Pour plus de détails s'il vous plaît se référer ci-dessous deux liens:

+0

Merci! J'avais en effet trouvé quelques informations sur la longueur maximale d'une commande. Une option d'interface n'est pas viable dans notre scénario car le buildserver exécute la commande (automatisée), donc nous ne pouvons pas utiliser une interface utilisateur. –