![](/img/trans.png)
[英]TFS PowerShell Snapin: How To Read Team Foundation Workspace Version
[英]Team foundation client command to reset workspace
是否有一个命令(或一系列命令)将TFVC工作区与服务器同步,以确保磁盘上的内容与检入服务器中的内容完全匹配。
tf vc scorch
几乎可以完成所需的工作,因为它会将客户端工作区与该工作区的服务器版本同步,但是如果在客户端上创建了一个新项目并将其添加到源代码管理中,尽管尚未签入,则该项目在烧焦后仍会保留运行。 注:我使用的是烧焦的TF客户端版本,而不是电动工具的版本,因为我用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"
),然后运行递归获取以重新填充新文件夹。 但是,这感觉就像是漫长的尝试,我认为这很简单...
我们使用TFVC
而不是Git
因为我们正在使用Dynamics AX
,它本身并不支持Git
。
我要删除此类对象的原因是因为此脚本将在构建服务器上运行,在此我想确保我们完全构建了检入到源代码管理中的内容。 从理论上讲,没有人应该在构建服务器上创建新对象,但我不希望依赖于这种假设/想要使此脚本尽可能健壮。
我错过了撤消命令: TF.exe vc undo * /recursive /noprompt
。
在运行get然后焦烧之前运行此命令可确保我的工作空间与最新的服务器版本完全匹配。
这是用于将当前工作空间与服务器同步的完整代码。 注意:此命令假定path
环境变量中包含tf.exe
的目录(或者您可以将tf
替换为"...\\path\\to\\tf.exe"
),当前目录/工作目录已映射到源代码控制,并且您的tf凭据已缓存(否则,请在/login
参数中添加用户名和密码)。 我没有在get
命令中包括/all
,'/ overwrite'或'/ force',因为scorch
总会解决这个问题。 get
此处的主要目的是确保我们的工作区“指向”最新定义。
tf vc undo * /recursive /noprompt
tf vc get * /recursive /noprompt
tf vc scorch * /recursive /noprompt /diff
注意:上面的vc是多余的/只是确保系统可能存在歧义的可能性,系统会知道使用命令的tfvc
版本而不是git
版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.