我正在使用SVN,我的存储库包含一个主干:
trunk
|
|_____A
|
|_____B
|
|_____C
我还有2个与树干结构相同的分支:
branch
|
|_____DEV
|
|_____A
|
|_____B
|
|_____C
|
|_____PROD
|
|_____A
|
|_____B
|
|_____C
主干用于持续开发,分支具有与主干相同的结构,但适用于不同的环境(即DEV和PROD)。我有一个特定的文件夹(文件夹' A')在trunk和DEV分支中都是常见的,我想保持同步,即在文件夹' A'中进行的任何更改。在主干中自动反映在文件夹“A'”中的DEV分支中。
这是要走的路?我已经尝试构建一个post-commit脚本,以便在trunk中完成的每个更改都会自动提交到分支,但到目前为止我还没有成功。
答案 0 :(得分:0)
但是为什么你会在这种情况下创建分支?这种方法存在多种问题。
并行开发是不可能的,因为工作在trunk上的团队提交了解决某些问题的东西,它可能会破坏在branch1或branch2上发生的并行开发。考虑将branch1或branch2稳定的重要性。
您会看到许多主干和分支机构发生冲突的情况。
根据我在多项开发项目上的经验,这是我的建议。希望这会有所帮助。
将存储库保留为父级,并按月确定合并计划(比如说)。这肯定会合并,但稳定努力会减少。
可以做的另一件事是在分支中使用maven依赖项,它将使用父存储库发布的最新版本。因此,可以避免在创建分支时复制整个存储库。
答案 1 :(得分:0)
PROD 和 DEV 环境之间的完全区别是什么?它是几个文件,一个不同的目录?它是一大堆文件吗?
通常,这样的事情将作为构建过程的一部分进行处理。然后,在构建过程期间,您可以构建开发或生产版本。
一些只包含PHP或JavaScript文件的项目并不需要构建。在这种情况下,只需将文件压缩为可以部署的工件。只需确保包含的文件适用于合适的环境。优点是,一旦你有一个构建设置,你可以做单位和烟雾测试等事情。
在Jenkins中,您可以构建两个工件,一个用于 DEV ,另一个用于 PROD 。如果 DEV 的特定构建是好的,那么您很确定该构建的 PROD 工件也很好。
您还可以构建单个可部署工件,并让部署过程为正确的环境修改该部署工件。或者使用Zookeeper之类的东西来保存Zookeeper实例中的环境变量和设置,并使用可以在任何环境中部署的单个工件。
没有理由使用两个必须保持彼此同步的独立分支。