2009-11-06 380 views
-1

也許,這個問題是更適合於serverfault,但我要首先反正在這裏嘗試...自動檢測FTP上傳,並提交到SVN

是否有一種方法來檢測用戶上傳時一個文件到服務器,並自動檢查該文件到源代碼管理?這是在帶有WebStack的Solaris 10服務器上。

我知道這是可能的,但我真的想這樣做。原因在於該公司剛剛開始使用SVN,並且希望通過避免過去習慣的方式讓所有的老開發人員(主要是業餘愛好者)保持一定的舒適度。

+0

那麼你做了什麼? – sbi 2009-11-12 23:06:27

+0

還沒有重新訪問它。我應該在本週晚些時候,然後我會標記一個答案。 – 2009-11-16 14:58:03

回答

0

你可能在serverfault上更好。基本上你想掛鉤到ftp上的上傳完成事件,那麼你需要做的就是在該目錄中運行svn ci,假定devs上傳的目錄是svn樹的簽出。

編輯 我過去所做的是使用Apache FTP server這是一個純Java的FTP。它允許你寫ftplets,它可以監聽上述事件。您只需擴展DefaultFtplet類並實現onUploadEnd,onRenameEnd,onDeleteEnd。對於每個事件,你會執行一些svn命令,無論是更新,刪除還是添加。

在我的老公司,我們使用了一個新的工件上傳到ftp來觸發哈德森構建。

+0

我想,雖然看起來這裏仍然有很多好點子:P 你甚至有可能提出什麼建議? – 2009-11-06 18:50:54

+0

噢,我會編輯和擴展我的想法。 – stimms 2009-11-07 16:52:58

1

有一件事情在您的情況下可能會很有趣。可以將通過Apache服務器提供的svn存儲庫映射到Windows中的簡單網絡文件夾(如果我不認爲它與SVN的最新版本中的WebDAV協議支持有關)。

因此,如果您的開發人員使用Windows資源管理器上傳文件到FTP,他們可能會切換到這種方式,而不會注意到區別。所以根本不需要FTP。

1

我相信你想要的是Autoversioning

...使用情況下,此功能可令人難以置信的吸引力與非技術用戶的工作管理員。想象一下運行Microsoft Windows或Mac OS的普通用戶的辦公室。每個用戶都「掛載」Subversion版本庫,該版本庫似乎是一個普通的網絡文件夾。他們像以往一樣使用共享文件夾:打開文件,編輯它們並保存它們。同時,服務器自動版本化所有內容。任何管理員(或知識淵博的用戶)仍然可以使用Subversion客戶端來搜索歷史記錄並檢索舊版本的數據。

這需要你做出通過Apache服務器(使用mod_dav_svn模塊)提供您的SVN服務器,雖然。

0

我的一位同事發現了File Events Notification,它基本上是爲Solaris進行inotify(據我瞭解)。我們還沒有進一步研究,但是一旦我們做了,我會在這裏標記適當的答案。