一次开发多个非常相似的项目

时间:2010-06-07 15:54:28

标签: svn project-management ftp merge

我正在开发一个半复杂的网站,可以在几个国家同时使用。为了使代码库尽可能彼此相似而付出了很多努力,最终只有配置文件和一些代表性数据才会有所不同。

每个项目都有自己的SVN存储库,可直接映射到实时测试站点。该部分由我们用来工作的IDE处理。

现在我需要创建一种系统来保持所有这些项目同步。

到目前为止,最好的理论解决方案是创建一个本地钩子脚本,该脚本将在提交和

时触发
  1. 合并提交给所有其他项目的项目中的已提交文件

  2. 可选择将其上传到实际网站,替换以前的文件

  3. 第一个问题是我不知道如何进行合并 - 我想这应该是应用SVN补丁或其他东西。第二个是如果我不想将更改上传到实时服务器,我将如何同步实时和本地代码库(替换旧文件?)。

    我发布这个问题,没有解决上述问题的潜在巨大麻烦,我认为这是一个非常常见的情况,有人已经有了解决方案其他人可能会受益从未来的答案。

    最后,我在windows7上,开发PHP并使用tortoiseSVN。

2 个答案:

答案 0 :(得分:9)

如果除了几个文件之外这些项目是相同的,为什么不设置几个项目(SVN中的文件夹),每个项目只包含这些不同的文件,external reference到项目(文件夹),包含所有常见的东西?

这样的事情:

--+
  +-+ project1
  | +- => common
  | +- config.file
  | +-+ data
  |   +- blah
  |   +- wrxgl
  |   +...
  +-+ project2
  | +- => common
  | +- config.file
  | +-+ data
  |   +- blah
  |   +- wrxgl
  |   +...
  +-+ project2
  | +- => common
  | ...
  +-+ common
    +- foo
    +- bar
    +- baz
    +...

答案 1 :(得分:2)

除非每个网站都非常独特,否则我个人只有一个分支在资源文件中有翻译。我的数据模型具有本地化的能力,因此当整个事情发生时,有一组文件和一个数据库供给整个数据。

也许我被宠坏了。我使用Django免费获得了很多这方面的功能,但gettext非常通用,排序路由(等)并不那么难。