我正在编写一个小网络应用程序,它允许用户通过 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 ls
、svn info
等结合可以实现存储库浏览和文件编辑。
关于node.js - 是否可以在数据库中进行 svn checkout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26300641/