2

我正在尝试 Plastic SCM,但我正在努力解决一个特定问题。我想在另一个项目中包含一些通用代码。我终于想出了如何制作一个 xlink,但后来发现你不能从另一个存储库中选择一个子文件夹,而必须包含整个东西。当我这样做时,Visual Studio 对第二个 AssemblyInfo 以及可能的其他一些事情产生了影响。

现在我可以将裸代码文件放入“模块”存储库中,但我希望将其作为一个 VS 项目来方便地管理和开发它。

我现在想出的是:

  • 程序回购
    • 解决方案
      • 项目
        • XLink 到“模块包括回购”
  • 模块开发回购
    • 解决方案
      • 项目
        • XLink 到“模块包括回购”
  • 模块包括回购
    • 要包含的文件

这应该可行,但需要为我要包含的每组文件使用单独的存储库。没有更好的方法来实现这一目标吗?

4

1 回答 1

2

根据您的评论,您需要的是利用 Xlinks。

Plastic SCM 中的 Xlink 基本上是给定变更集上路径的特殊目录条目,因此保留了“cset 不变性”。

有两种 xlink:

  • Readonly xlinks:这意味着您只需使用链接的代码来构建,但在处理链接它的源树时不会修改它。
  • Writable xlinks:这意味着您将在处理项目时修改链接的代码。它们类似于 git 子模块,但“做得对”,这意味着,塑料处理所有管道以将父级更新为在子级上创建的新 cset。

回答您的问题:是的,现在您需要 3 个存储库来设置您正在处理的项目:1) Program Repo 2) Module Dev Repo 3) Module Incl Repo(这是其他两个将引用的项目) )

只读 xlinks 的工作流程是:

  • 您在“program repo”上创建指向“module incl repo”的xlink,例如:

cm xlink src\incl / 23@ModuleIncl@yourserver:8087

这意味着您正在 src\incl 创建一个 xlink,指向 repo“ModuleIncl”中的变更集 23。

  • 您签入以提交您新创建的 xlink

  • 更新你的 wk 以从 xlink 获取代码(它不是在 ci 上完成的)

  • 然后,如果在某些时候您需要更新到 cset 30,您将编辑 xlink(从 CLI 或 GUI)以指向新的:

cm xlink -e src\incl / 30@ModuleIncl@yourserver:8087

这对于只读工作流程来说已经足够了。

您可以在此处找到有关 Xlinks 的更多信息http://www.plasticscm.com/releases/4.1/manuals/en/xlinksguide.pdf

于 2012-07-16T22:50:02.753 回答