0

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

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

  1. 用户 A 将文件添加到项目中。
  2. 用户 A 同时签入项目和新文件。
  3. 用户 B 在未获取最新版本的情况下签出项目
  4. 用户 B 添加文件。
  5. 用户 B 签入项目和新文件。
  6. 用户 A 获得最新的项目定义并注意到他们的文件“丢失”。

作为预防措施,我要求我的团队成员在添加文件之前立即获取最新的项目定义。尽管采取了这种预防措施,但错误仍在继续发生,文件“消失”。尽管我们可以手动从 Perforce 中检索它们并将它们添加回项目定义中,但我们根本不必经历这种痛苦。我知道 Perforce 可以自动检测文件的更改。Perforce 将自动将您的本地副本与服务器版本进行比较,如果在您选择撤消签出时检测到差异,则替换本地版本。必须有一种方法可以强制它在允许文件像 VSS 一样被签出之前进行检查。 当我的开发人员告诉我他们想回到 VSS 时,我很难过。

4

1 回答 1

1

这可能是与 P4SCC 和 Visual Studio 一起使用的“共享”工作区客户端的问题。工作空间客户端应该对每个用户和机器都是唯一的——Perforce 使用工作空间客户端来跟踪特定机器工作空间的内容。

以下是当两个用户都使用同一个工作区客户端时发生的情况:

  • 用户 A 和 B 都使用“standard_1”客户端强制同步到最新版本。have 表在服务器上更新,注意项目“foo”处于修订版 #12。

  • 用户 B 签出“foo”,添加文件并提交。现在已经更新了 have 表,并注意到项目“foo”在 standard_1 工作区中的修订版 #13。

  • 用户 A 现在签出项目“foo”,添加一个文件,并提交——没有冲突——作为标准 1 工作区中的修订 #14,因为 Perforce 认为该工作区已经有 #13。

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

于 2009-06-13T00:22:28.427 回答