梦在脚下,让心灵去飞翔。

专注.net,SQL Server,设计模式。

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  15 随笔 :: 1 文章 :: 969 评论 :: 28 引用
      项目组的Team Foundation Server 已经可以运转了,但是几天的使用中也发现了一些问题,也难怪微软的产品中我感觉TFS算是集成了很多产品与服务最多的了,所以它出的问题也是光怪陆离另众英雄竞折腰,并且TFS出现的问题都是特别不好解决的,所以从这篇维护手记开始,我准备把我对TFS维护中的问题,及其解决方式通过随笔的方式告诉大家,希望大家在使用TFS的过程中,少些弯路,少些困难。

我们在使用TFS的时候会使用到TFS中的SourceControl,SourceControl中的优点我就不用多说了,但是SourceControl有个比较致命的缺点,也是SourceControl基于工作区这种模式下所带来的问题,首先SourceControl源码管理会在每个客户机器上创建一个工作区,然后这个工作区域映射到服务器上的源码文件夹,我们在正常签入,签出的时候,我们的源码会在服务器到客户端的工作区进行操作,这是没有问题的,但是我们在使用TFS的时候基本上都是多人的并发签入签出,而TFS在设计的时候是支持签入锁定与签出锁定的,默认项目组成员在签出项目的时候是不应用签出锁(限制比较大,建议项目组成员慎用),签入锁(限制小于签出锁),但是一旦有项目组成员在把源码项目从TFS的SourceControl中签出,并且加入了签出锁或者是签如锁,这样也无所谓,只要这个项目组的成员按照规矩把这个项目最后在签入到SourceControl中,签出的锁定会自动的解除,关键的问题是如果这个项目组的成员放假了,或者这个项目组的成员离职了,这样的原因太多,由于种种原因这个项目组的成员的项目中可能有几个文件施加了签出(入)锁,这时如果项目组的下个成员想要修改被锁定的文件,或者是TFS的管理员想要在SourceControl删除这个项目,这时问题出现了,因为我们无法通过Team Explorer来进行这样的操作,当我们通过Team Explorer删除这样的项目的时候,Team Explorer会提示有签出(入)锁,然后告诉我们是哪个用户,在哪个工作区进行的锁定,一个工作区的定义应该是这样的,如:WorkSpaceSample;Domain\WangXiaoLong:6  这是一个工作区的完整的定义,出现这样的情况了,我们不要急可以使用这样的命令:
cd  C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
然后执行
tf undo /workspace:WorkSpaceSample;所在的域\用户名:用户名序号  $/路径/文件名

WorkSpaceSample;所在的域\用户名 这段参数为一个完整的WorkSpace ,所以大家不要图简单,漏了这个最重要的参数,

然后大家就可以刷新你的Team Explorer看看那个加锁的文件是不是不见了,你可以进行更多的操作了。
posted on 2007-03-06 20:29 随风飘散 阅读(3346) 评论(22)  编辑 收藏 所属分类: .Net Framwork3.0

评论

#1楼  2007-03-06 21:39 壮志      
好,又学了一招
  回复  引用  查看    

#2楼  2007-03-07 09:22 Ame      
然后大家就可以刷新你的Team Explorer看看那个加锁的文件是不是不见了,你可以进行更多的操作了。??

是文件被强行删除了,还是?如果我想保留文件,然后有修改权限呢?
  回复  引用  查看    

#3楼  2007-03-07 09:31 申健      
问两个比较傻的问题,一是如何将源代码管理中的代码取出来,让它不包含vssscc扩展名的文件;二是安装TFS后如何修改项目门户站点的端口。
  回复  引用  查看    

To Ame:

执行Undo操作后,这个用户对这个文件的锁定与挂起全部取消了,这样你就可以通过Team Explorer进行修改,或者删除的操作了,因为签出锁也是一种挂起呀。
  回复  引用    

To 申健:

(1)首先你可以通过获取最新版本的项目到本地工作区,然后在解决方案管理器中,点击这个项目的解决方案,然后在文件菜单下的源码管理下的源码管理设置,断开与本地工作区内项目的关联即可。
(2)端口也是可以修改,可以通过添加主机头的方式,或者是通过ISA的方式来实现。
  回复  引用    

#6楼  2007-03-07 23:40 ξ箫音ξ      
靠,看了半天,一看,竟然是哥们你写的!
  回复  引用  查看    

#7楼  2007-03-08 20:28 macrocheng [未注册用户]
tf undo /workspace:WorkSpaceSample;所在的域\用户名:用户名序号 $/路径/文件名
==================================================
问一句:用户名序号是什么?
  回复  引用    

#8楼 [楼主] 2007-03-09 10:00 随风飘散      
To macrocheng :

;Ower 分号后的是Ower,也就是这个工作区的所有者,也就是你的账号与工作区关联,举个例子,如果你的用户名删除了,然后又新建了一个同名的用户名,那么原有的用户名与工作区的关联还是存在的,所以就会出现两个同名工作区,Work1;WangGi:5 ,与Work1;WangGi 哈哈,这样你在操作的时候就可以根据不同的序号来找到对应的工作区了
  回复  引用  查看    

#9楼  2007-03-09 11:48 虫虫 [未注册用户]
哪里可以下载?
  回复  引用    

To 随风飘散 :
thanks for your detail explaination,however i wonder where to get this id? I just think it maybe in related DataTable which can store valid login user info

thanks
Macro
  回复  引用    

#11楼 [楼主] 2007-03-09 13:34 随风飘散      
To macrocheng :
你可以实用这个命令来查询工作区的完整信息,一个工作区的完整信息,就包含它的工作区的名字,工作区的ower,所有你可以使用下列命令来查询工作区的详细信息:注意在执行命令的时候有管理员的权限。

查看当前服务器所有机器上的工作区情况,包含ower情况,这样你的用户后面的ID就可以看见了。

tf workspaces /owner:* /computer:* /server:teamserver2 /format:detailed

  回复  引用  查看    

最近
俺们公司,要用tfs
有破解版么给哥们共享一个
邮箱:lunarmuse@126.com
先谢谢哥哥姐姐们了!
  回复  引用    

#13楼  2007-05-16 11:33 c [未注册用户]
请问如果工作区不存在了怎么办?(工作区重装系统)
  回复  引用    

#14楼 [楼主] 2007-05-16 12:04 随风飘散      
无所谓,首先使用命令行模式,显示所有的工作区,然后找到你所要删除的工具删除即可,但是要保证此工作区没有进行任何锁定,如果进行了锁定请之星undo操作
  回复  引用  查看    

#15楼  2007-06-07 11:34 pig [未注册用户]
请问如果以开发人员的帐户签出编辑(不管是锁定签出还是共享签出)某个文件,没有及时签入。我用TFS管理员的帐户或者项目管理员的帐户登陆却不能签入这个挂起的更改,操作项是灰化的。。。。。。
不知道怎么解决?

谢谢



  回复  引用    

#16楼 [楼主] 2007-06-26 15:43 随风飘散      
使用命令行模式,执行undo操作
  回复  引用  查看    

#17楼  2007-07-10 14:04 肖斯沃勒      
我碰到的一个情况,也许有用,记到这里:
独占性签出后,没有签入,系统重装,用回原来的工作区都没有用,其他的电脑上都无法签出...
使用undo也不行~
最后干脆tf workspace /delete~~~~~
就可以了~建议大家碰到问题可以tf/?,就会有详细的操作说明出来
  回复  引用  查看    

#18楼  2007-08-02 14:12 esnis [未注册用户]
参考这里费了九牛二虎之力才知道是这样做的,大家参考一下
tf undo /workspace:zhoupei;esnis\zhoup:11 $/esnis.CN/esnis3.1/Manager/Manager.csproj /server:192.168.0.247
  回复  引用    

#19楼  2007-08-15 16:34 xxx [未注册用户]
如果工作区所在的电脑也被处理了,undo是没有用的
  回复  引用    

#20楼 [楼主] 2007-08-16 09:57 随风飘散      
你要清楚一个概念,工作区在客户端表现的是一个服务器端的映射,无论做了什么都可以在服务器端进行操作的,纵然你的电脑损坏了,或者是别的情况,都可以在服务器上做的,同时我们可以强制删除一个工作区的,所以undo 的操作就是回滚这个工作区到上一个点,对于维护TFS服务器端命令行模式,必不可少的
  回复  引用  查看    

我想问一下,怎么设置默认的签出(入)的锁定类型?TFS默认是以“允许共享方式签出”的锁定类型,我想设置为“禁止其他用户签出签入”锁定类型。
  回复  引用    

#22楼  2007-09-03 13:23 逍遙 [未注册用户]
請問一下,如果該成員簽出並獨佔一檔案,可是又已被刪除的話,要怎麼解除他對檔案的簽出呢?
  回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-03-06 20:33 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: