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 在版本控制中管理品牌软件_Svn_Version Control - Fatal编程技术网

Svn 在版本控制中管理品牌软件

Svn 在版本控制中管理品牌软件,svn,version-control,Svn,Version Control,我目前正在使用subversion来管理我的源代码,我已经到了需要为客户开发的软件打上品牌的地步。所有的品牌都在项目资源中处理,因此更改客户的外观非常简单。我遇到的问题是在源存储库中维护软件的品牌版本。现在它是一个单独的分支,但当尝试将更改从主干合并到品牌分支时,它会很高兴地覆盖品牌资源文件 保持这些差异的好方法是什么,但仍然能够轻松地签出为主干构建或带有自定义资源文件的构建构建版本所需的所有内容?品牌应该是顶级项目,项目的核心部分作为子项目(或依赖项,具体取决于您的项目继承模型)。在subve

我目前正在使用subversion来管理我的源代码,我已经到了需要为客户开发的软件打上品牌的地步。所有的品牌都在项目资源中处理,因此更改客户的外观非常简单。我遇到的问题是在源存储库中维护软件的品牌版本。现在它是一个单独的分支,但当尝试将更改从主干合并到品牌分支时,它会很高兴地覆盖品牌资源文件


保持这些差异的好方法是什么,但仍然能够轻松地签出为主干构建或带有自定义资源文件的构建构建版本所需的所有内容?

品牌应该是顶级项目,项目的核心部分作为子项目(或依赖项,具体取决于您的项目继承模型)。在subversion中,您可以使用externals将核心产品源代码包含在顶级产品中,也可以构建核心产品并使用顶级项目创建最终的“程序集”.

你可以让品牌Release成为一个单独的回购协议,使用香草分行作为外部融资渠道


另一种方法是将所有内容都保存在一个分支中,并让构建过程选择要使用的品牌特定文件。

您需要将品牌作为核心技术的包装,这就是我所知道的其他所有项目都是这样做的

然而,如果你从一开始就没有考虑过这个项目,你可能需要一到两周的时间来重构一切


理想情况下,您不应该需要分支,但不管怎样,拥有分支是一个好主意,只是为了完善的工程原理和保护您客户的代码稳定性。正如前面提到的,品牌化应该是可以在编译时或运行时使用某种打包来完成的事情。

好的,您可以使用合并集,其中您只需进行一系列提交,或者您可以将品牌资源文件保存在分支根目录上的单独目录中?然后在合并时,只需选择根目录中不包括品牌资源的目录

我喜欢只合并一系列提交,因为这样可以避免分支上的新工作被吹走。但是如果需要合并所有内容,可以将项目移动到一个子目录(例如:“源”),并将标记移动到第二个子目录。然后在Eclipse或其他任何情况下,您可以选择从主干/源合并到分支/源

e、 g:

这个:
/svn/proj/trunk/a
/svn/proj/trunk/b
/svn/proj/trunk/c
/svn/proj/trunk/d/e/f/品牌

变成这样:
/svn/proj/trunk/source/a
/svn/proj/trunk/source/b
/svn/proj/trunk/source/c

/svn/项目/分支机构/品牌
/svn/项目/分支机构/来源/a
/svn/proj/branch/source/b

/svn/proj/branch/source/c

事实上,他是这样写的:“目前正在使用subversion”是的……我完全错过了它,提交了,并立即进行了编辑;)