关于 ssis:Visual Studios 2008 中的 Perforce 问题

Perforce Issue in Visual Studios 2008

我的团队使用 Visual Studios 2008 开发 SSIS 包,我们使用 Perforce 作为我们的源代码控制系统。当用户将文件添加到项目时,该项目会自动签出,而无需检查它是否是当前版本。有没有办法强制 Visual Studios 在检出文件之前获取文件的最新版本?

我们通常会在 Visual Studios 中的文件"丢失"之后确定这种情况。以下是通常发生的情况:

  • 用户 A 将文件添加到项目中。
  • 用户 A 同时签入项目和新文件。
  • 用户 B 在未获取最新版本的情况下签出项目
  • 用户 B 添加文件。
  • 用户 B 签入项目和新文件。
  • 用户 A 获得了最新的项目定义并注意到他们的文件"丢失"。
  • 作为一项预防措施,我要求我的团队成员在添加文件之前立即获取最新的项目定义。尽管采取了这种预防措施,但错误仍在继续发生,文件"消失"。尽管我们可以手动从 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。

    解决方案是确认每个用户都有其机器独有的工作区客户端规范。这将分隔每个用户工作区的拥有列表,并且每次都将出现编辑警告和签入冲突。