2011-04-14 56 views
0

我想添加一个区域/页面,允许用户将文件上传到SVN。 我见过SharpSVN,看起来很有希望,但我想知道它如何处理冲突等。ASP.NET - SVN web上传前端?

一种方法是使用SharpSVN更新站点本地副本的回购,保存上传的文件从浏览器,然后提交,但我想知道如果多个用户试图(大约)同时访问相同的文件,这将是多么稳定。除了手动实现某种锁定机制之外,解决此问题的好方法是什么?

哦,如果有人有预先存在的解决方案或一个很好的教程,我很乐意看到它。

注意:我是而不是寻找一个Visual Studio插件;这需要完全基于Web,因为我们使用svn进行文档共享,而且我不希望每个用户都安装Tortoise或命令行svn客户端。

回答

0

我设法使用一个非常标准的文件上传页面和一个db常驻信号量来工作。

0

最好的事情可能是创建一个Subversion的WebDav配置,它支持自动提交存储在相应驱动器上的文档。在Windows中,这意味着要有一个辅助驱动器,它是WebDav存储器,后端是一个Subversion目录。每次有人在该驱动器上存储某些内容时,它都会自动进行提交。但是你没有在机器上安装TortoiseSVN ......在我看来这是更好的解决方案。

0

要直接回答,您不会获得网络上传前端。

SVN作用于文件系统(目录树)的子部分,而不是文件。 HTTP上载对文件起作用,而不是目录树。

如果SVN网络前端存在,它将被限制为SVN功能的一个子集。不幸的是,这个子集非常小,它占用了大部分功能的SVN。你将如何捕获权限更改?你如何将这个文件中的变化与这个文件集成到项目中所需的一系列变化联系起来?我相信有足够的Web开发时间可以找到解决方案;然而,比可能建立的解决方案更好的解决方案已经存在。使用它们。

TortiseSVN将Windows文件夹层次结构绑定到SVN项目。 WebDav将WebDav客户端绑定到SVN项目。 svn(客户端)命令行工具将一个目录树绑定到SVN项目。 几乎所有主要IDE的插件都存在。

选择最适合您工作环境的解决方案;因为它们都与SVN整合在一起,因为它意在被使用。 HTTP在SVN之前就已经被设计出来了,并且它有能力将信息推送到Web服务器。试图“提交”目录树的差异,并且它的所有内容都是一个项目,HTTP缺乏足够的框架来完成工作,没有很多解决方法(这意味着不稳定和怪异,因为它不像HTTP那样)。