每个应用程序工作副本是否都有自己的库项目工作副本?

时间:2010-11-03 17:20:01

标签: svn version-control

让我们假设一些名为Graphics,Sound,IO等的共享库项目,以及使用这些项目的多个应用程序。 什么是最好的,共享项目的一个WC和每个应用程序的一个WC?或者每个应用程序都有一个WC和一个独立的WC库?

即。区别:

src
|
|---libs
|   |
|   |---graphics
|   |---sound
|   |---io
|
|---project1
|---project2

src
|---project1
|   |
|   |---libs
|       |
|       |---graphics
|       |---sound
|       |---io
|
|---project2
|   |
|   |---libs
|       |
|       |---graphics
|       |---sound
|       |---io

我可以在每种情况下看到优势,但我认为现实生活经验在这里真的很有帮助。

4 个答案:

答案 0 :(得分:1)

我建议让图书馆成为他们自己的项目......

graphics
  +-- trunk
  +-- tags
  +-- branches


io
  +-- trunk
  +-- tags
  +-- branches

sound
  +-- trunk
  +-- tags
  +-- branches

project1
  +-- trunk
  +-- tags
  +-- branches

project2
  +-- trunk
  +-- tags
  +-- branches

要在项目中使用它们你应该svn:externals链接io,图形等到特定的项目,防止将源代码复制到每个项目,你有一个点,你可以修复错误和增强功能等

答案 1 :(得分:0)

如果这些库被复制到整个代码库中,它们以什么方式“共享”?

在应用程序目录下有lib有什么优势?

答案 2 :(得分:0)

除非你有充分的理由支持所有应用程序库的不同WC,我建议使用一个WC用于库 - 这样更容易维护库(更新,构建)。

支持不同库WCs的原因可能是特殊的稳定性要求,只有在需要时才会转移到某个库的新版本。

答案 3 :(得分:0)

您是否考虑使用Maven存储库来存储二进制依赖项,而不是源代码控制系统?

然后可以使用像ivy这样的依赖管理器将jar作为构建过程的一部分下载到WC中。