用户创建的文本内容的版本控制

时间:2011-05-28 19:06:17

标签: svn version-control text user-data

问题:我正在开发一个网站,用户可以在其中创建,编辑和销售故事(基本上是文本文件)。我想为他们的文本(或多或少像Google Docs)实现用户友好的版本控制。我不寻找Wiki ,我宁愿寻找可以集成到网站中的VCS解决方案,其中版本控制只是一个方面(例如,我有自己的编辑,有网络,桌面和iOS版本。)

设计细节:在我的设计中,我希望能够处理50k用户,每个用户平均有4个故事(文本文件),每个100kb。他们的故事将至少每30分钟左右自动发布一次。我担心可能的开销和延迟频繁创建和删除以及提交数千个故事和数百个帐户的更改。我所担心的另一个问题是数据易受损坏。最后还存在实用性问题。对于后者,可能有助于知道我使用Django 1.3主要在Python 2.7中编写我的服务器Web界面。考虑到上述问题,我有以下问题:

  1. 假设我使用了subversion(我很熟悉,但从未使用过这种规模)。以下哪个选项更好?
    1. 为每个用户创建一个单独的项目;
    2. 为每个用户创建一个单独的文件夹,所有文件夹都在同一个巨大的项目中;
    3. 为同一文件夹和项目中的每个用户创建单独的文件(以避免处理数千个.svn标头)。
    4. 假设我不使用subversion。您推荐哪些其他VCS(Git?Mercurial?...)以及采用何种设置(在上述问题的模具中)?请简要解释原因。

2 个答案:

答案 0 :(得分:0)

为什么不直接使用具有严格安全设置的wiki,以便每个用户只能看到自己的wiki页面?一个流行的wiki项目是MediaWiki

答案 1 :(得分:0)

如果您必须使用VCS,我认为使用分布式VCS(例如gitmercurial)会有更好的运气。存储库是轻量级的,您可以轻松地为每个用户创建一个。