Perforce Issue in Visual Studios 2008
我的团队使用 Visual Studios 2008 开发 SSIS 包,我们使用 Perforce 作为我们的源代码控制系统。当用户将文件添加到项目时,该项目会自动签出,而无需检查它是否是当前版本。有没有办法强制 Visual Studios 在检出文件之前获取文件的最新版本?
我们通常会在 Visual Studios 中的文件"丢失"之后确定这种情况。以下是通常发生的情况:
作为一项预防措施,我要求我的团队成员在添加文件之前立即获取最新的项目定义。尽管采取了这种预防措施,但错误仍在继续发生,文件"消失"。尽管我们可以手动从 Perforce 中检索它们并将它们添加回项目定义中,但我们根本不必经历这种痛苦。我知道 Perforce 可以自动检测文件的更改。 Perforce 将自动将您的本地副本与服务器版本进行比较,如果在您选择撤消签出时检测到差异,则替换本地版本。必须有一种方法可以强制它在允许文件像 VSS 一样被签出之前进行检查。当我的开发人员告诉我他们想回到 VSS 时,我很难过。
这可能是与 P4SCC 和 Visual Studio 一起使用的"共享"工作区客户端的问题。工作区客户端应该对每个用户和机器都是唯一的——Perforce 使用工作区客户端来跟踪特定机器工作区的内容。
以下是两个用户使用同一个工作区客户端时的情况:
-
用户 A 和 B 都强制同步到
最新版本使用
"standard_1" 客户端。有表
在服务器上更新,注意到
项目 "foo" 处于修订版本 #12。 -
用户 B 签出 "foo",添加一个文件,
并提交。现在有表是
更新并注意到项目 "foo"
在standard_1 中的修订版#13
工作区。 -
用户 A 现在签出项目 "foo",
添加一个文件,然后提交 -- 没有
冲突——作为修订版 #14
standard_1 工作区,因为
Perforce 认为工作空间
已经有 #13。
解决方案是确认每个用户都有其机器独有的工作区客户端规范。这将分隔每个用户工作区的拥有列表,并且每次都将出现编辑警告和签入冲突。