在解决方案和源代码控制之间共享项目

时间:2018-07-25 20:08:50

标签: git tfs repository directory-structure

这可能是一个非常愚蠢的问题,如果有请指出。但是,我只是想提高我对为多人和多个项目和一些共享部分构建源代码控制库的最佳方法的了解。简而言之,我使用许多完全不同的代码库,这些代码库共享了一些与我们公司所使用的所有实现(日志记录,邮件发送等)通用的位的库。

我要询问的特定情况是,如果我在一个存储库中有客户A项目,在第二个存储库中有客户B项目,然后在第三个存储库中有一组“工具”,那么什么是共享代码的最佳方式,将存储库分开?

在理想的世界中,我们希望能够打开客户端A的项目,并查看/编辑/签入“工具”的代码,以及与客户端B相同的代码。目前,我仅通过运行Visual Studio的第二个实例并在进行更改时手动复制和更新DLLS来进行管理,但是我觉得必须有更好的方法。

谢谢!

2 个答案:

答案 0 :(得分:1)

用一个词回答您的问题:NuGet。

您应该做的是将任何共享组件转换为NuGet程序包,这些程序包将发布到NuGet提要,并由需要它们的任何项目引用。两种VSTS的TFS的现代版本均具有本机“软件包管理”提要(可作为扩展)。但是,包管理源可以像网络上某处的文件共享一样简单。

答案 1 :(得分:0)

  

在理想的世界中,我们希望能够打开客户端A的项目,并查看/编辑/签入“工具”的代码,并在客户端B的代码中查看。

您可以通过一种解决方案来实现。我知道您提到您将代码保存在3个存储库中,但这也许不是必需的。

拥有一个解决方案意味着,如果您在“工具”中更改代码,您会立即看到对两个客户端的影响(并且可以为两个客户端运行测试以确认所做的更改没有破坏A或B。

使用单个解决方案,您还可以在一个位置看到所有文件的更改,从而减少了忘记签入某些内容的可能性。

最后,您可以将3合并为一个,直到它的代码稳定下来,然后释放它(例如,通过NuGet)。

我认为,用于工具的NuGet功能和单个解决方案之间的决定应基于工具的大小以及工具中的代码更改的频率。

其他选项:

  • 复制“工具”中的代码,并在A和B存储库中都有源代码
  • 将一些代码从“工具”移至A和B,然后在“工具”中保留一些代码,然后创建一个NuGet-如果新工具不经常更改,则可以正常工作