我正在开发一个半复杂的网站,可以在几个国家同时使用。为了使代码库尽可能彼此相似而付出了很多努力,最终只有配置文件和一些代表性数据才会有所不同。
每个项目都有自己的SVN存储库,可直接映射到实时测试站点。该部分由我们用来工作的IDE处理。
现在我需要创建一种系统来保持所有这些项目同步。
到目前为止,最好的理论解决方案是创建一个本地钩子脚本,该脚本将在提交和
时触发合并提交给所有其他项目的项目中的已提交文件
可选择将其上传到实际网站,替换以前的文件
第一个问题是我不知道如何进行合并 - 我想这应该是应用SVN补丁或其他东西。第二个是如果我不想将更改上传到实时服务器,我将如何同步实时和本地代码库(替换旧文件?)。
我发布这个问题,没有解决上述问题的潜在巨大麻烦,我认为这是一个非常常见的情况,有人已经有了解决方案和其他人可能会受益从未来的答案。
最后,我在windows7上,开发PHP并使用tortoiseSVN。
答案 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
非常通用,排序路由(等)并不那么难。