指间(蒋建华)--天行健,君子当自强不息

        专注于微软产品及.Net技术的blog
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

使用TFS undo命令强制撤销签出

Posted on 2011-01-24 14:50  蒋建华  阅读(1639)  评论(3编辑  收藏  举报

 应用场景:

在一项目中因为一个同事去了其它项目组同时又有未签入的文件,通过电话沟通得知已经是最新文件,但是由于临一项目组不在本地,同时也不想使用TFS的远程访问,那么有两种方法可以让其他同事继续开发:其一是脱机进行开发,这样可以开发,但是文件就不能签入,项目组的其它人只能通过文件copy的方式获取最新版本,就失去了使用tfs进行源代码管理的意义;其二是使用tfs的命令行工具进行强制撤销签出,这样文件就处于签入状态了。在本文中就是用第二种方法来解决这个问题,既省去了让同事跑回来签文件的无谓消耗,又使其他同事能继续开发。下面我们切入正题。

 

解决思路:

可以通过TFS的命令行工具,调用undo命令进行强制撤销签出。MSDNUndo命令的描述如下:

undo 命令检查具有正在撤消的挂起编辑的文件是否已在磁盘上进行修改。 如果检测到修改,不带 /noprompt undo 命令将显示一个提示,询问是否继续撤消更改。 可以响应“Yes”“No”“All”

undo 命令将所有签出文件返回到未修改的只读状态。 它将丢弃对文件和文件夹的所有挂起的更改,并将项还原到 Team Foundation 版本控制 服务器版本。

undo 命令移除签入及签出锁定,以便用户在自己的工作区签出文件并对其做出挂起的更改。

如果使用 undo 命令撤消其他用户计算机上挂起的更改,则必须在该工作区中执行 get 操作以更新本地磁盘。 不仅必须运行 get,还必须对已撤消的文件运行 get /all,以便为被编辑文件下载正确的内容。

感兴趣的读者可以参考:

http://msdn.microsoft.com/zh-cn/library/c72skhw4.aspx

 

具体步骤:

1、使用TF workspaces命令查看签出文件的人员使用的工作区

2、是用TF undo命令进行强制撤销签出

 

演示:

1、项目中有同事签出了文件,如下图1所示:

 

1 签出了文件

 

2、使用tf comman,可以在开始程序里打开,如图2所示:

2 vs command

也可以在路径:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\下打开,注意这里的路径和 $\command7\IDE的路径有所不同。

 

3、使用tf workspaces查看工作区,如下图所示:

 

输入的命令行是:

tf workspaces /owner:rareserver\limingfei /computer:*

命令解释:

Tf workspaces /owner:域名\用户名 /computer:*

 

可以查看到工作区有两个:songfxwin-lmfpc,这里我们确认是win-lmfpc

 

4、使用tf undo命令进行强制撤消签出,输入命令:

 

tf undo /workspace:win-lm

fpc;rareserver\limingfei $/POSManagement/SourceCode/RareBusinessServer/NexusLibr

ary/Models/OilCanInfo.cs

命令解释:

tf undo /workspace:工作区;域名\用户名 $文件路径/文件名.扩展名

有关文件路径可以在团队资源管理器的source location里取到,执行命令后的界面如下:

 

 

在命令行界面已经提升操作成功了,回到tfs的团队资源管理器界面确认一下,点击“刷新”按钮,刷新一下,效果如下图所示:

 

 

上图中有一个文件已经撤消签出了,重复以上步骤把另一个文件也可以强制撤销签出。

实际上我们使用undo命令还可以对某个文件夹和子文件夹的所有更改进行操作。