使用Git进行面向社区的网站内容修订系统

时间:2009-01-26 21:09:17

标签: django git revision

我正在开发一个基于Django的网络应用程序,其中社区为网站上的内容提供动力,就像维基一样。内容采用HTML格式,用户可以完全自由地分发文章/章节,或者对现有文章/章节进行修改,并将其添加到当前的“工作版本”中。每篇文章/章节的维护者(原作者[s])都可以选择接受这些变化。

我们还计划维护任何特定文章的两个版本 - 或至少视图 - 作者批准的编辑版本和基于社区的免费编辑版本。

在详细历史记录之上管理所有这些分叉,合并和分支的修订系统开始听起来很像源修订系统。所以我正在考虑使用Git来管理这些修订。

我对那些比我更有经验的人的问题:

  • 是否值得努力,之后,它会比在RDBMS中推出更好的东西更好吗?

  • 如果是这样,粗略地说,我应该如何使用Django / Python来实现它?

再次询问希望收到更多回复,这对我来说非常重要

5 个答案:

答案 0 :(得分:4)

我不知道任何 Django模块会提供你想要的东西(至少是wiki,即带有一些轻量级标记语言的可编辑文本,再加上版本控制系统),但是你可以看看在Git Wiki的InterfacesFrontendsAndTools页面,“Wiki,博客等”部分。你可以在那里找到:

  • wikiri:用Python编写的简单单文件wiki,可选择git支持历史记录跟踪
  • Chuyen :用Python编写的博客软件,使用Django Web框架和Git作为其数据存储后端通过PyGit
  • Pystl:Python中非常简单的小型博客引擎,使用Git进行版本控制。

答案 1 :(得分:2)

您可以考虑查看ikiwiki的工作原理。这是一个简单的wiki系统,可以由真正的版本控制系统支持(我将它与Git存储库一起使用)。

答案 2 :(得分:1)

GitPython是一个与Git存储库交互的python库。我玩过它,但没有在生产中使用它。它似乎坚固且相对容易使用,并且正在积极开发中。

如果您在将Git与Django项目集成时遇到困难,可以查看Mercurial。我非常喜欢Git,它的优雅和强大的数据模型,但Mercurial提供类似于Git的功能,它是用python编写的,所以它可能更容易。

答案 3 :(得分:1)

django-rcsfield可能会有所帮助。它是Django Web框架的一个字段(如models.TextField) - 在引擎盖下 - 对其内容进行版本化。名称中的“rcs”是修订控制系统的缩写。

http://code.google.com/p/django-rcsfield/

答案 4 :(得分:0)

我刚刚在reddit上看过这个:

https://launchpad.net/django-wikiapp/

  

Django WikiApp是一个可插拔的   申请Django旨在   提供完整的Wiki(真的   小的“完整”值。)

HIH,