如果你在TFS中替换一个文件,该文件的状态会是add,这个时候check in是不会成功的,失败的原因是有一个文件冲突,根据提示打开冲突编辑页面,有两个选项'Take Server Version' or 'Keep Local Version',点击Keep Local Version会报如下错误:The item $/xxx.cs already has pending changes.

 

感觉TFS不能自动识别新添加的这个文件和原来同名的文件是同一个文件,进行替换内容就行了吧,非得要整出一大堆的异常来,用惯了SVN的还真郁闷这个。

 

我的解决方案:

  1. 把新添加的文件备份一下,然后把新添加的文件给删除了。
  2. TFS的源代码管理器(Source Control Explorer)中把之前删除的文件进行Undo Pending Changes操作(如果在项目中找不到该文件,用Add-Existing Item把该文件找回来)
  3. 然后把新添加的文件内容替换以前文件的内容,对文件内容进行替换,而不会文件进行替换,这样就可以check in.

 

新上手TFS,可能这样的解决方案不太优雅,但是能解决问题,如果谁有更好的解决方案或者TFS出现这样问题的原理,欢迎提出分享

posted on 2013-01-25 11:20  Mr.Young  阅读(914)  评论(0编辑  收藏  举报