Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 塑料供应链中的代码共享_Visual Studio_Plasticscm - Fatal编程技术网

Visual studio 塑料供应链中的代码共享

Visual studio 塑料供应链中的代码共享,visual-studio,plasticscm,Visual Studio,Plasticscm,我正在尝试塑料SCM,但有一个特殊的问题让我很为难。我想在另一个项目中包含一些通用代码。我终于找到了制作xlink的方法,但后来发现,你不能从另一个存储库中选择子文件夹,而必须包含整个内容。当我这样做的时候,VisualStudio会对第二个AssemblyInfo和其他一些东西产生影响 现在,我可以将裸代码文件放入“模块”repo中,但我希望将其作为VS项目来方便地管理和开发它 我现在想到的是: 计划回购 解决方案 计划 XLink至“模块包括回购” 模块开发报告 解决方案

我正在尝试塑料SCM,但有一个特殊的问题让我很为难。我想在另一个项目中包含一些通用代码。我终于找到了制作xlink的方法,但后来发现,你不能从另一个存储库中选择子文件夹,而必须包含整个内容。当我这样做的时候,VisualStudio会对第二个AssemblyInfo和其他一些东西产生影响

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

我现在想到的是:

  • 计划回购
    • 解决方案
      • 计划
        • XLink至“模块包括回购”
  • 模块开发报告
    • 解决方案
      • 计划
        • XLink至“模块包括回购”
  • 包括回购在内的模块
    • 要包括的文件

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

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

塑料SCM中的Xlinks基本上是特定变更集上路径的特殊目录项,因此“cset不变性”得以保留

有两种XLink:

  • Readonly xlinks:这意味着您只需使用链接的代码进行构建,但在处理链接的源代码树时不会对其进行修改
  • 可写xlinks:这意味着您将在处理项目时修改链接代码。它们与git子模块类似,但“做得对”,这意味着塑料处理所有管道,将父级更新为在子级上创建的新cset
回答您的问题:是的,现在您需要3个存储库来设置您正在处理的项目: 1) 计划回购 2) 模块开发报告 3) 包括回购在内的模块(其他两个将参考该模块)

使用只读xlinks的工作流是:

  • 您可以在“程序回购”上为您创建xlink“模块包含回购”,类似于:
cm xlink src\incl/23@ModuleIncl@您的服务器:8087

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

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

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

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

cm xlink-e src\incl/30@ModuleIncl@您的服务器:8087

对于只读工作流来说,这就足够了


您可以在此处找到有关Xlinks的更多信息

在处理“程序回购”和“模块开发回购”时,您需要修改“模块包含回购”吗?还是只需要构建它?我只需要在“程序回购”中构建它。我设置了“模块开发报告”,以便我可以处理该模块。谢谢。不幸的是,您只能链接完整的存储库。如果在repo A中,您只想从repo B链接文件夹X,那么文件夹X应该是它自己的repo,并且X链接到repo A和B。