用于重置工作区的 Team Foundation 客户端命令
Team foundation client command to reset workspace
是否有一个命令(或一系列命令)将 TFVC 工作区与服务器同步,确保磁盘上的内容与签入服务器的内容完全匹配。
tf vc scorch
几乎完成了所需的工作,因为它将客户端工作区与该工作区的服务器版本同步,但是如果在客户端上创建了一个新项目并添加到源代码管理中,尽管尚未检查在中,该项目在烧焦后仍然存在 运行。注意:我使用的是 TF Client 版本的 scorch 而不是 power tools 版本,因为我使用的是 VS2017(scorch
受 VS2013 SP1 支持),如果有什么不同的话。
相关,我知道电动工具包含一个 treeclean
命令;然而,这只会影响不受源代码控制的项目;不是那些添加到版本控制但未签入的。https://adamprescott.net/2011/09/12/clean-tfs-workspaces-with-scorch-treeclean/。
我能想到的实现此目的的唯一方法是删除 (tf vc workspace /delete /collection:"https://$MyInstance.visualstudio.com/DefaultCollection" $MyWorkspace
) 并重新创建 (tf workspace /new $MyWorkspace /collection:"https://$MyInstance.visualstudio.com/DefaultCollection"
) 工作区,然后 运行ning 递归获取重新填充新建文件夹。然而,对于我认为很简单的事情来说,这感觉像是一个漫长的过程......
我们使用 TFVC
而不是 Git
,因为我们使用的是 Dynamics AX
,它本身不支持 Git
。
我想删除此类对象的原因是因为此脚本将 运行 在构建服务器上,我想确保我们构建的正是签入源代码管理的内容。虽然理论上没有人应该在构建服务器上创建新对象,但我不喜欢依赖这种假设/想让这个脚本尽可能健壮。
我错过了 undo 命令:TF.exe vc undo * /recursive /noprompt
。
运行 运行 get and then 之前的这个命令确保我的工作区与最新的服务器版本完全匹配。
这是用于将当前工作区与服务器同步的完整代码。注意:此命令假定 tf.exe
的目录包含在 path
环境变量中(或者您可以将 tf
替换为 "...\path\to\tf.exe"
),即 current/working目录在源代码管理中映射,并且您的 tf 凭据被缓存(否则包括带有用户名和密码的 /login
参数)。我没有在 get
命令中包含 /all
、'/overwrite' 或 '/force',因为无论如何 scorch
都会涵盖这些内容;这里get
的主要目的是确保我们的工作区是"pointing at"最新定义的。
tf vc undo * /recursive /noprompt
tf vc get * /recursive /noprompt
tf vc scorch * /recursive /noprompt /diff
注意:上面的 是多余的/只是确保系统知道使用 tfvc
版本的命令而不是 git
版本。
是否有一个命令(或一系列命令)将 TFVC 工作区与服务器同步,确保磁盘上的内容与签入服务器的内容完全匹配。
tf vc scorch
几乎完成了所需的工作,因为它将客户端工作区与该工作区的服务器版本同步,但是如果在客户端上创建了一个新项目并添加到源代码管理中,尽管尚未检查在中,该项目在烧焦后仍然存在 运行。注意:我使用的是 TF Client 版本的 scorch 而不是 power tools 版本,因为我使用的是 VS2017(scorch
受 VS2013 SP1 支持),如果有什么不同的话。
相关,我知道电动工具包含一个 treeclean
命令;然而,这只会影响不受源代码控制的项目;不是那些添加到版本控制但未签入的。https://adamprescott.net/2011/09/12/clean-tfs-workspaces-with-scorch-treeclean/。
我能想到的实现此目的的唯一方法是删除 (tf vc workspace /delete /collection:"https://$MyInstance.visualstudio.com/DefaultCollection" $MyWorkspace
) 并重新创建 (tf workspace /new $MyWorkspace /collection:"https://$MyInstance.visualstudio.com/DefaultCollection"
) 工作区,然后 运行ning 递归获取重新填充新建文件夹。然而,对于我认为很简单的事情来说,这感觉像是一个漫长的过程......
我们使用 TFVC
而不是 Git
,因为我们使用的是 Dynamics AX
,它本身不支持 Git
。
我想删除此类对象的原因是因为此脚本将 运行 在构建服务器上,我想确保我们构建的正是签入源代码管理的内容。虽然理论上没有人应该在构建服务器上创建新对象,但我不喜欢依赖这种假设/想让这个脚本尽可能健壮。
我错过了 undo 命令:TF.exe vc undo * /recursive /noprompt
。
运行 运行 get and then
这是用于将当前工作区与服务器同步的完整代码。注意:此命令假定 tf.exe
的目录包含在 path
环境变量中(或者您可以将 tf
替换为 "...\path\to\tf.exe"
),即 current/working目录在源代码管理中映射,并且您的 tf 凭据被缓存(否则包括带有用户名和密码的 /login
参数)。我没有在 get
命令中包含 /all
、'/overwrite' 或 '/force',因为无论如何 scorch
都会涵盖这些内容;这里get
的主要目的是确保我们的工作区是"pointing at"最新定义的。
tf vc undo * /recursive /noprompt
tf vc get * /recursive /noprompt
tf vc scorch * /recursive /noprompt /diff
注意:上面的 tfvc
版本的命令而不是 git
版本。