2011-05-28 48 views
2

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

设计细节:在我的设计中,我希望能够处理5万个用户,每个平均4个故事(文本文件),每个100KB。他们的故事至少每隔30分钟就会自动提交。我担心可能出现的开销,并且会延误频繁创建和删除以及对数千个故事和数百个帐户进行更改。我的另一个担忧是数据对腐败的脆弱性。最后还有实用性问题。稍后它可能会帮助我知道我正在使用Django 1.3编程我的服务器Web界面,主要是在Python 2.7中。考虑到以上所述,我有以下问题:

  1. 假设我使用颠覆(这是我熟悉的,但从未在这样的规模使用)。以下哪个选项更好?
    1. 为每个用户创建一个单独的项目;
    2. 为每个用户创建一个单独的文件夹,全部在同一个巨大的项目中;
    3. 为同一文件夹和项目中的每个用户创建单独的文件(以避免处理数千个.svn头文件)。
  2. 假设我不使用subversion。你推荐哪种其他的VCS(Git?Mercurial?...)以及使用什么样的设置(在上述问题的模型中)?请简单解释原因。
+0

不是你在找什么维基?无论如何,与编程无关,所以投票结束。 – 2011-05-28 19:29:19

+0

@NeilButterworth我并不是真的在寻找一个wiki。如果我描述问题的方式听起来像是这样,我很抱歉。实际上,我正在编写一个网站,用户将在这里创建和销售故事,因此编辑只是其中的一个方面。我希望我的用户能够倒退并比较他们的变化,让正在阅读他们故事的人(潜在买家)能够检查最近的变化。编程问题在于,我必须选择合适的版本控制子系统来与服务器端进行连接(无论是自己还是自己实现)。 – 2011-05-30 04:19:13

回答

0

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

+0

我不想找像MediaWiki这样的Wiki,因为我想在编辑和阅读故事(拥有自己的自定义编辑器和阅读器)时保持对最终用户体验的完全控制。我不会放弃使用类似后端的可能性 - 我将尝试查看MediaWiki如何实现版本控制。你的回答给出了一个很好的研究方向。不幸的是,我还没有足够的声望来投票。干杯。 – 2011-05-30 05:10:31

0

如果你必须去一个VCS,我想你会有更好的运气,分布式VCS像gitmercurial。这些存储库是轻量级的,您可以轻松地为每个用户创建一个。

+0

感谢您的回答。是的,我确实在寻找VCS,但我希望能就如何设置问题提供一些建议。我知道你建议每个用户使用一个项目使用Git或Mercurial,对吗?我已经重新设计了更具体的问题,请看看你是否有时间。不幸的是,我还没有足够的声望来投票你的答案。干杯。 – 2011-05-30 05:13:32

+0

嗯......如果你确实使用SVN,我会避免任何“一个大型项目中的所有”设计出于缩放的原因。通过每个用户的计划,您将为未来的发展增加更多的灵活性。我建议git或mercurial的原因是创建存储库很便宜。阅读更多内容,它们也可能是在未来的多设备场景中保持内容同步的好选择,并且它们不需要提交互联网连接。以下是DVCS加上hg quickstart的快速介绍:http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/。祝你好运! – stevevls 2011-05-31 07:29:56