2011-04-14 70 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那樣)。