【问题标题】:Perforce Issue in Visual Studios 2008Visual Studios 2008 中的 Perforce 问题
【发布时间】:2009-06-13 08:22:28
【问题描述】:

我的团队使用 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 时,我很难过。

【问题讨论】:

  • 第 5 步是如何进行的?我使用 p4v 进行提交,如果文件自上次关闭以来已被修改,它将不会提交。即便如此,就算没有冲突,我还是要下定决心。我放弃其他人更改的唯一方法是在解决期间选择忽略他们的更改。
  • 我们在我们的网站上没有看到这种行为。您当前使用的是哪个版本的 Visual Studio perforce 插件?在过去的几个版本中,有许多很好的变化使 VS 集成更好。当前版本为 2008.2。为澄清起见,在步骤 (3) 中,我们的开发人员应收到提示同步到最新版本。我刚刚在我们的环境中测试了它,尝试将一个新的 cpp 文件添加到一个不是头版本的项目中。系统提示我同步到最新版本的项目文件。

标签: visual-studio-2008 ssis perforce


【解决方案1】:

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

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

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

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

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

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

【讨论】:

  • 我上周五打电话给 Perforce,并与一位技术代表交谈。在查看了我们电话中的笔记后,他得出了同样的结论。我所有的团队成员现在都在使用他们自己的工作区客户端,问题已经解决。感谢您的帖子!
猜你喜欢
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
相关资源
最近更新 更多