【发布时间】:2011-05-28 19:06:16
【问题描述】:
问题:我正在开发一个网站,用户将在其中创建、编辑和销售故事(基本上是文本文件)。我想为他们的文本实现一个用户友好的版本控制(或多或少像谷歌文档)。我不是在寻找 Wiki,而是在寻找可以集成到版本控制只是一个方面的网站中的 VCS 解决方案(例如,我有自己的编辑器,有网络,桌面和 iOS 版本)。
设计细节:在我的设计中,我希望能够处理 50k 个用户,每个用户平均有 4 个故事(文本文件),每个 100kb。他们的故事将至少每 30 分钟左右自动提交一次。我担心可能的开销和延迟频繁创建和删除以及提交数千个故事和数百个帐户的更改。我担心的另一个问题是数据容易损坏。最后还有实用性的问题。对于后者,了解我主要使用 Django 1.3 在 Python 2.7 中对服务器 Web 界面进行编程可能会有所帮助。考虑到上述情况,我有以下问题:
- 假设我使用颠覆(我很熟悉,但从未以如此规模使用过)。以下哪个选项更好?
- 为每个用户创建一个单独的项目;
- 为每个用户创建一个单独的文件夹,所有这些都在同一个巨大的项目中;
- 为同一文件夹和项目中的每个用户创建单独的文件(以避免处理数千个 .svn 标头)。
- 假设我不使用颠覆。您推荐哪些其他 VCS(Git?Mercurial?...)以及使用什么样的设置(在上述问题的模型中)?请简要说明原因。
【问题讨论】:
-
您要找的不是 wiki 吗?无论如何,与编程无关,所以投票结束。
-
@NeilButterworth 我并不是真的在寻找 wiki。如果我描述问题的方式听起来像这样,我很抱歉。我实际上正在编写一个网站,用户将在其中创建和销售故事,因此编辑只是其中的一个方面。我希望我的用户能够回退并比较他们的变化,并让正在阅读他们故事的人(潜在买家)能够检查最近的变化。从某种意义上说,编程问题就在那里,我必须选择适当的版本控制子系统来与服务器端交互(要么自己实现,要么自己实现)。
标签: svn version-control text user-data