在一个变更集中使用 tf.exe 签入多个文件
Checkin multiple files with tf.exe in one changeset
在我们的一个构建中,我们正在启动一些自动签出和签入某些文件的自动化过程。
一切正常,但此时我们运行签入命令如下所示
tf.exe checkin /force /comment:"foo" /noprompt /bypass /override:"bar"
状态为 Pending
的所有文件都将签入。
我想让这个脚本更具体一些,只签入我们在构建过程中实际更改的文件(总共 2 个),所以我们确定不会签入任何文件 'by accident'.
我已经看到我们可以使用 checkin
command 指定单个文件名,但这样做我们将在 TFS 中获得 2 个不同的变更集,而不是 1 个。我们真的很想有 1 个变更集,包含两个更改的文件,因为更改属于彼此。
关于如何处理这个问题有什么想法吗?
少量添加/短期解决方案
目前我已经通过指定修改文件所在的文件夹解决了我们的'problem',看起来像这样
tf.exe checkin "/my/folder/location/" /recurse /force /comment:"foo" /noprompt /bypass /override:"bar"
记下文件夹位置和添加的 /recurse
参数。
您只需用空格分隔文件:
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
正如其他人所提到的,您可能 运行 遇到命令行长度超过系统支持的问题,在这种情况下,您可能需要查看其他解决方案。
cmd.exe
对命令的长度有限制。使用版本控制 API,或简单地 'tf checkin /i'(无参数)可能是比传递大量长文件名更好的选择。
如果文件由于更改而自动签出,并且文件的内容最终更改回其原始状态,这都是正常的。那时你会看到关于比较相同内容的消息。您也可以使用 tfpt uu /noget /r *
命令忽略与原始文件相同的文件。您需要安装 TFS Power Tools 才能正常工作。 注意:没有TFS Power tool 2017。
更多详情请参考以下两个链接:
- Visual Studio TFS shows unchanged files in the list of pending changes
- Can TFS Pending Changes show files that are truly changed like SourceGear Vault?
在我们的一个构建中,我们正在启动一些自动签出和签入某些文件的自动化过程。
一切正常,但此时我们运行签入命令如下所示
tf.exe checkin /force /comment:"foo" /noprompt /bypass /override:"bar"
状态为 Pending
的所有文件都将签入。
我想让这个脚本更具体一些,只签入我们在构建过程中实际更改的文件(总共 2 个),所以我们确定不会签入任何文件 'by accident'.
我已经看到我们可以使用 checkin
command 指定单个文件名,但这样做我们将在 TFS 中获得 2 个不同的变更集,而不是 1 个。我们真的很想有 1 个变更集,包含两个更改的文件,因为更改属于彼此。
关于如何处理这个问题有什么想法吗?
少量添加/短期解决方案
目前我已经通过指定修改文件所在的文件夹解决了我们的'problem',看起来像这样
tf.exe checkin "/my/folder/location/" /recurse /force /comment:"foo" /noprompt /bypass /override:"bar"
记下文件夹位置和添加的 /recurse
参数。
您只需用空格分隔文件:
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
正如其他人所提到的,您可能 运行 遇到命令行长度超过系统支持的问题,在这种情况下,您可能需要查看其他解决方案。
cmd.exe
对命令的长度有限制。使用版本控制 API,或简单地 'tf checkin /i'(无参数)可能是比传递大量长文件名更好的选择。
如果文件由于更改而自动签出,并且文件的内容最终更改回其原始状态,这都是正常的。那时你会看到关于比较相同内容的消息。您也可以使用 tfpt uu /noget /r *
命令忽略与原始文件相同的文件。您需要安装 TFS Power Tools 才能正常工作。 注意:没有TFS Power tool 2017。
更多详情请参考以下两个链接:
- Visual Studio TFS shows unchanged files in the list of pending changes
- Can TFS Pending Changes show files that are truly changed like SourceGear Vault?