如何清除TFS代码库中不再需要的文件Pending Change和Lock?
来源:互联网 发布:软件网页培训学校 编辑:程序博客网 时间:2024/04/29 15:56
公司中人员来来往往,当一个员工离开后,其曾经使用过的TFS workspace还是存在的,这就是为什么我们在Visual Studio的Source Control Explorer中浏览代码库中的文件时,仍然还能够看到已离职员工的名字出现在文件pending change用户中。
一般情况下,这些无用的workspace不会对正常的工作有啥影响,只是多占用了一些TFS的存储空间而已。但是如果这些workspace中存在被锁的(locked)文件或文件夹,不解锁别人就无法打开。可以由具备权限的管理员在Source Control Explorer中(或者用tf lock命令)来解锁这些文件,但是如果类似的被锁文件很多的话,全部解锁它们将是一件很伤神的体力活。另一种更为高效的解决办法就是,删除所有这些不用的workspace。例如,在下面例子中,corp/jeff是公司中一名已经离职的员工的域账号,可以使用tf workspaces和tf workspace命令来找出其在TFS上拥有的所有workspace,然后一一清除它们。
tf workspaces /owner:corp/jeff
Collection: shanghaitfs/DefaultCollection
Workspace Owner Computer Comment
--------------- -------- --------------- ---------------------------
STICKER Jeff JEFF-STICKER
STICKER1 Jeff JEFF-STICKER
DEV01 Jeff JEFF-EV01
WIN2008 Jeff JEFF-WIN2008
NOTEBOOK Jeff JEFF-NOTEBOOK
WIN7 Jeff JEFF-WIN7
上一步列出了corp/jeff在TFS collection : shanghaitfs/defaultcollection上所拥有的所有workspace(tf workspaces命令允许使用/collection来指定collection,这里使用的默认的当前workspace的collection), 接下来使用tf workspace /delete命令就可以逐一清除掉它们了。
tf workspace /delete Sticker;corp/jeff
A deleted workspace cannot be recovered.
Workspace 'Sticker;corp/jeff' on server 'http://shanghaitfs:8080/tfs/defaultcollection' has 87 pending change(s). Are you sure you want to delete the workspace? (Yes/No) Y
注意:要删除其他人的workspace,你必须具有“Administrator workspaces”权限,更多有关TFS权限的内容,请参见Team Foundation Server Permissions. 此外,tf workspace /remove是另外一个删除workspace的命令,区别在于/remove只是删除本地cache中的条目,而不是TFS服务器端的workspace。
其实在日常TFS使用中,删除不用的workspace不应该只是针对离职的员工。因为大家会经常创建workspace, 但实际上几乎没有人会意识到在不使用workspace后要去删除它。日积月累,TFS上会堆积有大量不用的workspace。TFS的管理员应该定期提醒在职员工自己清楚掉自己长期不使用的workspace, 这对于服务于几百或者上千人的TFS服务器来说还是很必要。例如,下面的命令列出指定server上的所有workspace。
tf workspaces /owner:* /computer:* /server:http://shanghaitfs:8080/tfs/defaultcollection
(2011/4/10更新) 虽然tf workspaces可以列出所有workspace,但是列出的信息中并没有包括workspace的最后访问时间,所以不足以帮助TFS管理员判断出哪些workspace可能不再使用的。下面这些方法可以帮助我们进行判断:
- TFS Sidekicks工具,它是一款免费软件,可以列出workspace的信息信息;
- tfsclean.exe也是一款免费的小工具,帮助我们查找和清理不用的workspace;
- 最后一种途径就是编写你自己的工具,TFS Client Object Model API提供了VersionControlServer.QueryWorkspaces()函数,用于获取并返回Workspace对象数组。而该对象中就包含了- LastAccessDate属性。
参考资料
- Improvements to workspaces in TFS 2010
- 如何清除TFS代码库中不再需要的文件Pending Change和Lock?
- TFS中删除文件和重命名文件
- Kernel Pending -- Dead lock
- C#中lock,Monitor和Mutex的测试代码
- TFS 中文件夹和分支的区别
- mybatis的config.xml文件中不再需要通过<mapper>一个一个配置实体的xml文件了
- java 如何结束掉一个不再需要的进程
- TFS清除不同用户组的工作状态
- TFS2010备份:TFS2010在重装系统后,如何把以前的tfs数据库文件连接到tfs中
- Makefile中如何调用python和perl文件为自己提供需要的数据
- tfs中获得的Azure storm代码不能提交
- CHiQ,不再需要额外的盒子和游戏机
- TFS中文件被lock之后如何让解锁
- TFS中如何创建映射的工作区
- 如何完全清除VSS的代码管理
- 撤消TFS中其他用户对文件的锁定
- 项目中.DS_Store如何清除和隐藏
- 如何使php页面中不再出现NOTICE和DEPRECATED的错误提示
- flash学习之mouseChildren 与 mouseEnabled
- OO对象中up-casting和Down-casting
- OpenMeetings编译详解 (无需OpenLaszlo Server)
- Struts2 下载中文乱码解决 绝对简单低配
- SQL游标语法及举例
- 如何清除TFS代码库中不再需要的文件Pending Change和Lock?
- 安装VMware虚拟机和Linux操作系统
- 意志力 & 自制力
- 在服务器上安装phpMyAdmin
- ubuntu10 tomcat配置
- 类的数据成员的初始化
- OGRE动态阴影
- 隐藏与显示桌面和任务栏
- Android--软件安装器Install