Visual Studios 2008中的Perforce问题

时间:2009-05-13 19:58:33

标签: visual-studio-2008 ssis perforce

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

我们通常会在Visual Studio中“丢失”文件后确定这种情况。这是通常发生的事情:

  1. 用户A将文件添加到项目中。
  2. 用户A同时检入项目和新文件。
  3. 用户B在没有获取最新版本的情况下签出项目
  4. 用户B添加文件。
  5. 用户B同时检入项目和新文件。
  6. 用户A获取最新的项目定义,并注意到他们的文件“丢失”。
  7. 作为预防措施,我要求我的团队成员在添加文件之前立即获取最新的项目定义。尽管有这种预防措施,但错误仍在继续,文件“消失”。虽然我们可以手动从Perforce中检索它们并将它们添加回项目定义,但我们根本不应该经历这种痛苦。我知道Perforce可以自动检测文件的变化。 Perforce将自动将本地副本与服务器版本进行比较,如果在选择撤消签出时检测到差异,则替换本地版本。在允许文件像VSS一样签出之前,必须有一种强制它检查的方法。 当我的开发人员告诉我他们想要回到VSS时,我很难过。

1 个答案:

答案 0 :(得分:1)

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

以下是两个用户使用相同工作区客户端时的情况:

  • 用户A和B强制同步到 最新修订使用 “standard_1”客户端。有桌子 在服务器上更新,注意到 项目“foo”的修订版本为#12。

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

  • 用户A现在检出项目“foo”, 添加一个文件,并提交 - 没有 冲突 - 作为第14号修订版 standard_1工作区,因为 Perforce认为工作空间 已经有#13。

解决方案是确认每个用户都具有其计算机所独有的工作区客户端规范。这将分隔每个用户工作区的列表,并且每次都会检查编辑时的警告和签入时的冲突。