在一个变更集中使用tf.exe签入多个文件

时间:2017-10-16 13:38:45

标签: tfs tf-cli

在我们的一个版本中,我们正在启动一些自动过程,即自动检出并检入一些文件。

这一切都运行良好,但此时我们正在运行checkin命令,如下所示

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

所有状态为Pending的文件都将被签入。

我想让这个脚本更具体一些,只检查我们在构建过程中实际更改的文件(总共2个),所以我们肯定知道没有文件会“偶然”检查。< / p>

我已经看到我们可以使用checkin command指定一个文件名,但这样做我们将在TFS中获得2个不同的变更集,而不是1.我们真的希望有1个变更集,包含已更改的文件,因为更改属于彼此。

有关如何处理此事的任何想法?

次要补充/短期解决方案

目前我已经通过指定修改后的文件所在的文件夹解决了我们的“问题”,这种文件看起来像这样

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

请注意文件夹位置和添加的/recurse参数。

2 个答案:

答案 0 :(得分:3)

您只需按空格分隔文件:

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

documentation并不清楚这一点,但它可能是 itemspec 的一般规范,它可以是多个项目。

查看有关结帐的类似问题:Is there a way to check-out multiple files from various folders in TFS in a single operation

正如其他人所提到的,您可能会遇到命令行长于系统支持的问题,在这种情况下,您可能需要查看其他解决方案。

答案 1 :(得分:0)

cmd.exe对命令的持续时间有限制。使用版本控制API,或简单地't checkin / i'(无参数)可能是比传递大量长文件名更好的选择。

如果文件由于更改而自动检出,并且最终文件的内容更改回原始状态,则是正常的。此时,您将在比较时看到有关相同内容的消息。您还可以使用tfpt uu /noget /r *命令忽略与原始文件相同的文件。您需要安装TFS Power Tools才能实现此功能。 注意:2017年没有TFS Power工具。

有关详细信息,请参阅以下两个链接: