这个问题在某种意义上与"Best way to share common code"有关,但在这种情况下情况略有不同。
我现在正在为一个项目编写一个应用程序,比如A。它尚未完成,现在将启动一个新的项目B,基本上是附加组件A的复制品。由于这两个项目尚未完成,我很可能会在A中修复我需要带到B的项目;也许B中的增强也是我想要移植到A的。
我应该如何在我的情况下使用SVN?
答案 0 :(得分:1)
理想情况下,您应该尝试不要使用两个非常相似的项目副本。这是各种麻烦的秘诀;试图让它们保持同步如你所描述的那样需要不断地来回合并,这很难且容易出错。
更好的是,以这种方式构建项目,以便真正共享共享部分。也许把它变成一个图书馆。或者,也许,使它们成为一个大项目,有两个不同的构建 - 一个构建A,一个构建B。
答案 1 :(得分:1)
如果它们真的那么相似,我只想在Project A的项目B的回购中创建一个分支,然后根据需要合并。
否则,将公共代码提取到自己的新仓库中,并使用svn:externals
在每个项目中引用它。
答案 2 :(得分:1)
听起来你想要在你的仓库中建立一个新的分支,你可以在那里开发新的东西,或者保持旧的分支。 (如果使用stadnard trunk / branches / tags布局,则必须选择)。这可能是最简单的方法。
如果您想分开代码,您的选项是:
svn:externals
使用公共代码到第三个仓库,在那里你有A和B的分支(如果需要),这样你就可以轻松地合并两者。如果代码在两个项目中独立更改,那么尝试在每个仓库中保留单独的版本是一种灾难。不支持在不同的回购之间进行合并,所以不要去那里。 (相信我。我去过那里。)