塑料SCM中的代码共享

时间:2012-07-12 12:54:44

标签: visual-studio plasticscm

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

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

我现在想出的是:

  • 计划回购
      • 项目
        • XLink to“Module Incl Repo”
  • 模块开发回购
      • 项目
        • XLink to“Module Incl Repo”
  • 模块包含回购
    • 要包含的文件

这应该可以工作,但是对于我想要包含的每组文件都需要一个单独的存储库。有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:2)

根据您的意见,您需要的是利用Xlinks。

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

有两种xlink:

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

回答你的问题:是的,现在你需要3个存储库来设置你正在处理的项目: 1)程序回购 2)模块开发回购 3)模块Incl Repo(其他两个将引用的那个)

readonly xlinks的工作流程是:

  • 您在“程序回购”中创建了“模块包含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

这对于只读工作流程就足够了。

您可以在http://www.plasticscm.com/releases/4.1/manuals/en/xlinksguide.pdf

找到有关Xlinks的更多信息