是否可以在数据库中进行svn checkout

时间:2014-10-10 13:30:10

标签: node.js mongodb svn visualsvn-server

我写了一个小的webapp,它允许用户浏览Visual SVN服务器。我想在这个webapp中添加一个像github这样的在线编辑器,这样用户就可以在线编辑文件,留言并将更改显示在存储库中。

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

是否有办法(不重新实现svn协议)在数据库中甚至只是在内存中签出,然后将其写入数据库。

如果有任何问题,请问:)

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

1 个答案:

答案 0 :(得分:2)

无法直接向数据库执行svn checkout。但是有一些选择。

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

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

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