博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何清除TFS代码库中不再需要的文件Pending Change和Lock?
阅读量:3978 次
发布时间:2019-05-24

本文共 1950 字,大约阅读时间需要 6 分钟。

      公司中人员来来往往,当一个员工离开后,其曾经使用过的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 'defaultcollection' has 87 pending change(s). Are you sure you want to delete the workspace? (Yes/No) Y

     注意:要删除其他人的workspace,你必须具有“Administrator workspaces”权限,更多有关TFS权限的内容,请参见. 此外,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更新) 虽然可以列出所有workspace,但是列出的信息中并没有包括workspace的最后访问时间,所以不足以帮助TFS管理员判断出哪些workspace可能不再使用的。下面这些方法可以帮助我们进行判断:

  1. 工具,它是一款免费软件,可以列出workspace的信息信息;
  2. 也是一款免费的小工具,帮助我们查找和清理不用的workspace;
  3. 最后一种途径就是编写你自己的工具,TFS Client Object Model API提供了函数,用于获取并返回对象数组。而该对象中就包含了- 属性。

 

参考资料

转载地址:http://iwgki.baihongyu.com/

你可能感兴趣的文章
动态SQL(Dynamic SQL)
查看>>
在存储过程之间传递数据
查看>>
迁移存储过程
查看>>
GET DIAGNOSTIC 语句
查看>>
Python 简介
查看>>
Python 注释
查看>>
Python 变量
查看>>
Python 数据类型 -- 数字
查看>>
Spring 管理对象
查看>>
Spring 自定义对象初始化及销毁
查看>>
Spring Batch 环境设置
查看>>
字符组转译序列
查看>>
字符转译序列
查看>>
Java 数据类型
查看>>
UTF-16 编码简介
查看>>
Java 变量名
查看>>
Java 四舍五入运算
查看>>
Spring Batch 例子: 运行系统命令
查看>>
Spring Batch 核心概念
查看>>
Spring Batch 例子: 导入定长文件到数据库
查看>>