【问题标题】:A copy of one depot path into two different workspace locations一个仓库路径的副本到两个不同的工作空间位置
【发布时间】:2012-03-23 12:22:45
【问题描述】:

我们有一个名为“Shared”的 Perforce 库路径,其中包含许多子文件夹,所有子文件夹都只包含零长度的虚拟文件,没有真正的源文件,以在工作区中创建特定的文件夹结构。我们希望第二次使​​用相同的文件夹结构,这次称为“Artifacts”。

有没有办法使用 Perforce 将一个仓库路径映射到两个工作空间位置?

更新:由于无法使用 Perforce 将一个仓库路径复制到两个工作区位置,因此我不得不寻求其他解决方案。这是一件好事,因为无论如何拥有仓库路径的影子副本都会有异味。现在我介绍了一个“预构建”步骤,用于重置共享文件夹中的所有存档标志。我添加了一个“构建后”步骤,将所有带有存档标志的文件复制到 Artifacts 文件夹中。这完全符合我的要求,无需解决上述问题。

感谢您的回答和 cmets。

【问题讨论】:

  • 如何使用共享库?是新建项目的模板吗?
  • 不,它是存储已编译程序集的位置,供后续构建使用。我们的 VS2010 项目分为多个解决方案。由以前的解决方案创建的程序集被复制到共享文件夹结构中,并被后续项目的文件引用引用。
  • 根据您使用的系统类型,这可能是对符号链接的合理使用。在“Artifacts”文件夹中,创建指向“Shared”文件夹的符号链接。
  • 我在 Windows 上。好吧,这意味着我将拥有一个具有相同结构的 Artifacts 文件夹。显然,我可以在 Perforce 中创建 Shared depot 文件夹的副本,但我想避免冗余。
  • windows上有支持符号链接的工具,sysinternals有好多年的工具technet.microsoft.com/en-us/sysinternals/bb896768另外,如果你有Win2k8或者Vista/Win7,可以使用mklinktechnet.microsoft.com/en-us/library/cc753194%28v=ws.10%29.aspx

标签: teamcity perforce teamcity-7.0


【解决方案1】:

不,你不能。

Perforce 映射是 1:1。想想看。如果您要在两个位置编辑文件,Perforce 应该如何处理?当 Perforce 软件仓库中的单个文件由工作区中的两个位置表示时,情况会变得非常复杂,并且他们没有处理这种复杂性,而是决定不允许这样做。

现在,我实际上更希望拥有一个功能,您可以在其中拥有只读映射,以在不破坏底层 1:1 SCM 功能的情况下满足您的需要,但这可能会使 Perforce 在他们没有的方向上走得太远不想投入精力。

然而,到目前为止,我最大的抱怨是,如果您将一个位置映射到两个工作空间位置,Perforce 不会给出任何错误。它只会忽略其中一个(我认为是第二个)。这会导致很多混乱,并且 Perforce 的行为非常糟糕,因为这是一个相当明显的错误。

【讨论】:

    【解决方案2】:

    不,没有办法使用 Perforce 将一个 depot 路径映射到两个工作空间位置。

    【讨论】:

      猜你喜欢
      • 2016-05-31
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多