- TFS是用来存储文件的服务器,放置不同版本的文件。因此文件的数量和内容因版本不同而不同。
在Fig-00中,服务器和本地的对应文件夹Common下的因版本不一致,所以文件数量是不一致的。
Fig-00
在下图Fig-01中,在本地的解决方案中,我们使用"显示所有文件"。相比TFS上的文件,发现缺少的3个文件是存在的,只是没有包含在当前项目当中。这也正 验证了TFS只存储文件本身,并不能体现项目文件的有效性。
Fig-01
- 如何正确的编辑文件?
我们来看一种不正确的做法的场景。
问题场景:我们通过KT着手维护一个新的项目名字为Homeland,需要把项目的源代码从版本1.0升级到2.0。拿到最新的源代码后,配置管理人员小A直接通过复制、粘贴的方式,把Source Code V2.0放到本地映射的路径下面。结果拷贝完毕后,我们发现文件的标识还是蓝色的锁。此时小A需要把更新的Source Code V2.0上传到服务器上,他选中本地Solution文件,右键点击后选中"获取最新文件",如Fig-02所示,同时选中第二项"当本地文件跟TFS上的版本一致时,覆盖所有文件"。
很显然服务器上是V1.0,本地是已经更新过的V2.0。如Fig-03所示系统检测到Log.cs文件在本地已经被更新过了。
Fig-02
Fig-03
我们需要处理这个冲突,如图Fig-04所示,我们选择第一项"签出并自动合并",这意味着以本地的文件为主,保留差异,系统自动会签出对应的Log.cs文件,然后执行签入即可。
这时候你会问"为什么不用签入呢",如果你这样操作过的话,你会发现这种情况下是没有签入动作的,因为你之前就没有执行"签出",何来签入呢?
Fig-04
正确的签入签出:
- 我们在编辑文件的时候,尽量操作单个文件,而不是像上文中描述的批量操作。
- 在更新文件的时候,一定记得先签出,然后再更新文件(包括上文中的覆盖文件的场景),最后再签入。
- 如果一定要从服务器上批量获取文件,建议勾选"Overwrite all files even if the local version matches the specified version."。