Team Foundation Server的回滚操作

最近遇到要把有些项目需要做回滚操作,发现TFS的UI上没有回滚的操作。
经过百度,查到一个CSDN上的博主发了一种方法,经过验证,那种方法是错误的:
他通过先获取指定变更集-》签出-》签回去,以达到回滚的目的。
表面上看是挺合理的,但是如果其中要回滚到的变更集有删除操作,那就会导致一些错误了。
例如:变更集5中的一个文件test.cs,我将其删除,签入(变更集6)。然后再获取变更集5的test.cs,再签入(变更集7)。这时,变更集7中的test.cs便不能匹配到变更集5中的test.cs,因此,如果你查看test.cs的历史记录,只会有变更集7,之前的版本只能通过到上级目录检索到。

而且还会导致一些其他的异常。说了这么多,那正确的方法应该怎么做呢?

应该需要先下载Team foundation Server Power Tools:
下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=FBD14EEA-781F-45A1-8C46-9F6BA2F68BF0&displaylang=en
使用里面命令行的方式来回滚,微软将一些危险的操作都放在了命令行里面,例如销毁操作,强制签入操作等。这些应该由熟悉TFS的管理员来操作,这样能避免带来一些不必要的损失。

回滚使用的是power tools中的tfpt rollack命令。tfpt需要运行在powershell中。

具体步骤:
1.先在Team Explorer中将要回滚的工作区映射到本地
2.打开开始菜单中power tools里的powershell
3.使用cd命令导航到你映射到的目录,例如cd c:\project1 (假如你将项目映射到c:\project1目录)
4.输入tfpt rollback,它会提示你是否获取最新版本,选YES
5.选择要回滚的变更集(注意:这个是你要撤销操作的变更集)
6.回滚之后,还必须执行签入操作,回滚在被提交到服务器。

注意事项:
执行rollback的时候必须保证所有本工作区中的项目没有挂起更改,不单单是你要回滚的目录下的内容没有挂起哦。否则,你就会收到如下信息:
Cannot proceed because you have pending changes in your workspace. You must move
 to a shelveset, undo, or check in all pending changes before reverting a change
set.

posted @ 2009-10-05 11:02  DJ尐舞  阅读(1613)  评论(0编辑  收藏  举报