Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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
在SVN中,如何维护会被2个或更多项目更改的公共代码库?_Svn_Version Control - Fatal编程技术网

在SVN中,如何维护会被2个或更多项目更改的公共代码库?

在SVN中,如何维护会被2个或更多项目更改的公共代码库?,svn,version-control,Svn,Version Control,这个问题在某种意义上是与之相关的,但在这种情况下情况略有不同 我现在正在为一个项目编写一个应用程序,比如A。它还没有完成,现在一个新的项目B将开始,基本上是一个带有附加组件的a的复制品。由于这两个项目都未完成,我很可能会在A中进行修复,我需要将其提交给B;也许我也想把B中的增强功能移植到A中 我应该如何在我的情况下使用SVN 理想情况下,您应该尽量不要有两份非常相似的项目在进行中。这是制造各种麻烦的方法;如您所述,试图保持它们的同步需要不断地来回合并,这既困难又容易出错 更好的做法是,以这样的方

这个问题在某种意义上是与之相关的,但在这种情况下情况略有不同

我现在正在为一个项目编写一个应用程序,比如A。它还没有完成,现在一个新的项目B将开始,基本上是一个带有附加组件的a的复制品。由于这两个项目都未完成,我很可能会在A中进行修复,我需要将其提交给B;也许我也想把B中的增强功能移植到A中


我应该如何在我的情况下使用SVN

理想情况下,您应该尽量不要有两份非常相似的项目在进行中。这是制造各种麻烦的方法;如您所述,试图保持它们的同步需要不断地来回合并,这既困难又容易出错


更好的做法是,以这样的方式构建项目,以便共享的部分能够真正共享。也许把它变成一个图书馆。或者,让它们都成为一个大项目,有两个不同的构建——一个构建A,一个构建B。

如果它们真的那么相似,我会在项目A的回购协议中为项目B创建一个分支,然后根据需要合并


否则,将通用代码提取到它自己的新repo中,并在每个项目中使用
svn:externals
引用它。

听起来你希望在repo中有一个新分支,在那里你要么开发新东西,要么维护旧东西。(您必须选择是否使用Statnard主干/分支/标记布局)。这可能是最简单的方法

如果要分离代码,可选择以下选项:

  • 将所有项目放在同一回购协议中,每个项目都有顶级目录(A、B、共享),或
  • 创建两个回购协议A和B,使用
    svn:externals
    到第三个具有通用代码的回购协议,其中您有A和B的分支(如有必要),以便可以轻松地在两者之间合并
如果代码在两个项目中都独立更改,那么试图在每个repo中保留单独的版本将导致灾难。完全不支持不同回购协议之间的合并,所以不要去那里。(相信我,我去过那里。)

Re:两个非常相似的正在进行的项目的副本-这是一直在做的,例如版本1、版本2,并且通常由分支支持。