【问题标题】:Code Sharing in Plastic SCM塑料单片机中的代码共享
【发布时间】:2012-07-12 12:54:43
【问题描述】:

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

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

我现在想出的是这样的:

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

这应该可以,但需要为我想要包含的每组文件设置一个单独的存储库。有没有更好的方法来实现这一点?

【问题讨论】:

  • 在处理“Program Repo”和“Module Dev Repo”时是否需要修改“Module Incl Repo”,还是只需要构建?
  • 我只需要在“程序回购”中构建它。我设置了“Module Dev Repo”,这样我就可以在模块上工作了。

标签: visual-studio plasticscm


【解决方案1】:

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

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

xlink 有两种:

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

回答您的问题:是的,现在您需要 3 个存储库来设置您正在处理的项目: 1) 程序回购 2) 模块开发仓库 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

【讨论】:

  • 谢谢。不幸的是,您只能链接完整的存储库。
  • 如果在 repo A 中,您只想从 repo B 链接文件夹 X,那么文件夹 X 应该是它自己的 repo,XLinked 到 repos A 和 B。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多