node.js - 是否可以在数据库中进行 svn checkout

标签 node.js mongodb svn visualsvn-server

我正在编写一个小网络应用程序,它允许用户通过 Visual SVN 服务器进行浏览。我想在这个网络应用程序中添加一个像 github 这样的在线编辑器,这样用户就可以在线编辑文件,留言,更改会出现在存储库中。

为此,我需要在本地 checkout 文件。我的想法是在 mongodb 中检查它们,这样我就可以像本地工作副本一样保存每个用户的更改。

有没有一种方法(无需重新实现 svn 协议(protocol))在数据库甚至只是内存中进行 checkout ,然后将其写入数据库。

如果有任何问题,尽管问:)

顺便说一句。如果有人感兴趣,这里是代码 https://bitbucket.org/Knerd/svn-browser

最佳答案

无法直接对数据库进行svn checkout。但还有一些选择。

首先,您可以简单地创建驻留在内存中的虚拟磁盘并对该磁盘执行 checkout 。您可以将 checkout 的文件存储到数据库中。

另一个选择是直接使用丰富的 Subversion API。请注意,Subversion 是用 C 编写的,因此您需要在 Node.js 和 SVN 之间建立桥梁(据我所知,Node.js 没有官方的 Subversion 绑定(bind),但有 Python 和 Java 的绑定(bind))是可用于 Node.js 的非官方 nodesvn 包)。使用 API,您可以实现自己的“数据库内”工作副本。

您还可以使用 svnmucc 实用程序(随 VisualSVN Server 一起提供)直接在存储库中进行提交(甚至无需制作工作副本)。与svn lssvn info等结合可以实现存储库浏览和文件编辑。

关于node.js - 是否可以在数据库中进行 svn checkout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26300641/

相关文章:

javascript - (Node.js+express+MongoDB),如何优化经常使用的变量?

node.js - 在 Cloudant noSQL 数据库中搜索多个参数

javascript - 如何根据它是 Node.JS 中的 $regex 还是 $text 对 Mongoose 结果进行排序?

mongodb - 如何使用mongo-driver在Go中执行聚合

svn - 合并结构变化时避免树冲突

javascript - 如何调试 Node.js 应用程序?

mysql - Sequelize 无法从 Node/express 应用程序同步到 docker 容器中的 MySQL (ECONNREFUSED)

c# - MongoDb c# 2.0 驱动程序 - 我如何计算服务器上的聚合计数?

windows - 如何指定文件://path to svn on Windows (redmine)?

svn - 标记 SVN "Nightly"使用 CruiseControl.Net 构建