【问题标题】:Version control for user created text content用户创建的文本内容的版本控制
【发布时间】:2011-05-28 19:06:16
【问题描述】:

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

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

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

【问题讨论】:

  • 您要找的不是 wiki 吗?无论如何,与编程无关,所以投票结束。
  • @NeilButterworth 我并不是真的在寻找 wiki。如果我描述问题的方式听起来像这样,我很抱歉。我实际上正在编写一个网站,用户将在其中创建和销售故事,因此编辑只是其中的一个方面。我希望我的用户能够回退并比较他们的变化,并让正在阅读他们故事的人(潜在买家)能够检查最近的变化。从某种意义上说,编程问题就在那里,我必须选择适当的版本控制子系统来与服务器端交互(要么自己实现,要么自己实现)。

标签: svn version-control text user-data


【解决方案1】:

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

【讨论】:

  • 我不是在寻找像 MediaWiki 这样的 Wiki,因为我想在编辑和阅读故事时完全控制最终用户的体验(拥有自己的自定义编辑器和阅读器)。我不会放弃使用类似后端的可能性——我会尝试看看 MediaWiki 如何实现版本控制。你的回答给出了一个很好的研究方向。不幸的是,我还没有足够的声誉来投票。干杯。
【解决方案2】:

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

【讨论】:

  • 感谢您的回答。是的,我确实在寻找 VCS,但我会很感激有关如何设置问题的一些建议。我知道您建议使用 Git 或 Mercurial,每个用户一个项目,对吗?我已经重新设计了更具体的问题,如果你有时间请看一下。不幸的是,我还没有足够的声誉来投票给你的答案。干杯。
  • 嗯...如果您使用 SVN,出于扩展原因,我会避免任何“一体化大型项目”设计。使用每用户项目计划,您将为未来的增长提供更大的灵活性。我建议使用 git 或 mercurial 的原因是创建存储库很便宜。阅读更多,它们也可能是在您未来的多设备场景中保持内容同步的好选择,并且它们不需要互联网连接来提交。这是 DVCS 的快速介绍和 hg 快速入门:betterexplained.com/articles/…。祝你好运!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 2011-02-07
  • 1970-01-01
相关资源
最近更新 更多