如何从命令行重建 TFS 工作区?

How rebuild TFS workspace from the command line?

我需要在我的工作站上重建我的本地工作区,以删除一些阻止我进行进一步更改的冲突更改。

我收到以下错误,需要解决它才能继续我的工作。

Conflict "uc_example.ascx.cs" - Unable to perform the get operation Because you have any available conflicting edit

我更喜欢从命令行执行此操作。

首先尝试解决问题

要查看有问题的文件有哪些未决更改,您可以 运行:

tf status $/path/to/your/uc_example.ascx.cs /format:detailed 
         /collection:http://yourserver:8080/tfs/YourCollection /user:*

可选择使用 /workspace:name 参数包含一个工作区。

要撤消对文件的未决更改(确保您有待修改内容的备份):

tf undo $/path/to/your/uc_example.ascx.cs
         /collection:http://yourserver:8080/tfs/YourCollection

可选择添加需要撤消更改的工作区(您可能需要具有撤消其他人的更改权限)。

tf undo $/path/to/your/uc_example.ascx.cs 
         /workspace:TheWorkspaceWithEditYouWantGone;OwnerOfSaidWorkspace
         /collection:http://yourserver:8080/tfs/YourCollection

要查看有问题的文件有哪些未决更改,您可以 运行:

tf status $/path/to/your/uc_example.ascx.cs /format:detailed 
         /collection:http://yourserver:8080/tfs/YourCollection

如果有待处理的 delete,您不能尝试签入待处理的 edit。或者,如果有待处理的 merge,则您不能执行 delete。当您删除一个文件(挂起一个 delete),然后创建一个具有相同名称的新文件(它将尝试挂起一个 add 并失败)时,可能会发生这种情况。您需要先签入删除,或者撤消删除然后覆盖文件。您不能 deleteadd 在同一个签到中。

如果失败,请清除工作空间

如果这没有帮助,您可以删除工作区,创建一个新工作区,获取最新资源,重新应用您的更改并尝试将其签入。

WARNING THIS WILL BLOW AWAY ALL PENDING CHANGES ON THE WORKSPACE MAKE SURE YOU HAVE A BACKUP BEFORE PROCEEDING!

tf undo /workspace:YourWorkspaceName /recursive /noprompt
         /collection:http://yourserver:8080/tfs/YourCollection

tf workspace /delete /collection:http://yourserver:8080/tfs/YourCollection 
         /workspace:YourWorkspaceName

tf workspace /new /noprompt /collection:http://yourserver:8080/tfs/YourCollection 
        /location:local YourWorkspaceName

tf workfold /map $/Server/Folder d:\Your\Local\Path /workspace:YourWorkspaceName
        /collection:http://yourserver:8080/tfs/YourCollection 

WARNING BELOW LINE WILL GET AND FORCE ALL FILES TO THE LATEST VERSION

tf get d:\Your\Local\Path /recursive /version:T /force /overwrite

但是如果该项目在其他人的工作空间中有冲突的更改,它不会帮助您吹走您的工作空间。