如何进行Plone版本控制?
我正在学习Python,特别是Zope和Plone。我读了《专业Plone开发》这本书,里面提到必须使用版本控制。但书里没有详细讲这个话题。这让我有两个问题。
第一个问题:用SVN还是git?(我查了一下,发现git更好,毕竟我也想学一下。我之前只用过SVN。)
第二个问题:哪些文件应该用版本控制?是设置文件和我自己的代码吗?整个Zope目录都要吗?data.fs文件肯定不行吧?.pyc文件我也确定不需要。我最近因为这个原因暂时没碰Plone,我找不到好的指南。简单来说,当我在本地电脑和我的网络服务器之间同步数据时,事情就崩了。非常严重。我不太确定原因是什么。要么是缺少了一些更新,要么是更新了一些特定平台的文件。我的家用电脑是64位的Ubuntu,而远程服务器是32位的RHEL。感觉一团糟,而且这种混乱让我有点害怕再去碰它。
有没有办法知道哪些文件应该用版本控制,哪些不应该呢?
谢谢。
3 个回答
要找到一个明确的答案其实挺难的。我找到的最好的参考资料是这个Plone项目,它已经被放进版本控制系统里了:
我把我的构建文件放到了svn里(目录:project/buildout/trunk)。构建工具会自动下载所有需要的Plone/Zope文件,并确保它们是正确的版本。
另外,我还把我的“蛋”放到了svn里(目录:project/eggs/trunk)。这些“蛋”包含了我对Plone的所有修改。
我的构建工具使用mr.developer来自动获取我的“蛋”。
你可以查看这个链接:http://toutpt.wordpress.com/2010/07/07/nantes-developpement-com-a-new-plone-website-by-makina-corpus/,它是一个比较大的构建,使用了各种各样的模块和扩展。
不,不。绝对不要直接修改Zope/Plone系统的代码。应该创建一个插件,把你的自定义内容放在里面。当然,你得定期备份,但用版本控制来管理这些并不合适。
你需要确保任何生产环境的构建都是可以重复的。这意味着要把所有的版本固定在你的发布版本上(可以参考http://pypi.python.org/pypi/buildout.dumppickedversions,这是一个很方便的工具,可以记录你选择的版本),并且要在本地备份任何源代码的分发包,也就是备份你的构建下载缓存。