svn伺服器過濾文件設置
❶ 如何讀取SVN伺服器上的許可權配置文件
辦實現安裝配置比較麻煩
要實現想關鍵於要每SVN庫許可權文件存放能同許可權文件存放所版本內庫許可權容才能某許可權文件控制許可權放給某SVN管理員
按照思路搭建SVN伺服器候用SVN、Apache集搭建apachehttpd.confsvn段location用svnparentpath指向各版本庫父目錄用svnpath指向某版本庫說每版本庫寫段location每段location指定單獨許可權文件用戶ID密碼文件用統通操作系統共享許可權設置每許可權文件指定應管理員甚至更進步些許可權文件做單獨SVN庫每許可權文件存放單獨文件夾設定每文件夾讀寫許可權再設定庫post-commit鉤些許可權文件commit操作通鉤自伺服器端更新許可權文件
程稍微復雜些絕實現明白繼續問我
❷ linux 下的svn怎麼設置忽略文件
提供兩個思路吧:1、首先將這個文件上傳,保證伺服器端有這個文件,然後在回ToitorseSVN客戶端答設置全局忽略樣式,將整個文件名作為忽略條件,這樣在提交時就不會提交這個文件了。這個方法的問題在於如果在別的文件夾下有同名文件需要提交,那麼就會導致那個文件也被忽略。
2、將這個access文件放在另一個svn版本庫中,在該項目的版本庫中通過設置svn:externals屬性來外部引用這個文件,這樣應該也不會提交這個文件。這個方法沒驗證過,只是理論分析,你可以自行驗證。
-----------
補充一下,如果用方法一,就必須通知所有人員在客戶端都設置忽略這個文件。
❸ svn checkout 的時候怎麼設置 只檢出自己需要的文件忽略不需要的文件
這個問題解決了嗎?最近也遇到了同樣的問題
❹ 使用SVN上傳文件時,我想屏蔽掉上傳一個文件,請問怎麼屏蔽 就好像登陸文件,每個人的配置都不一樣。
簡單處理的話,就在每個SVN客戶端設置忽略這個文件,如果客戶端是TortoiseSVN的話,設置屬性——全局忽略樣版式,在裡面加上這個文件的名字
但這必須每個客權戶端都設置這個,如果有人沒有設置,他就仍然能夠上傳。要想確保這個文件不被上傳,就得在SVN伺服器端設置鉤子文件pre-commit,這個鉤子會在commit前自動被執行,可以在這個鉤子里寫腳本來判斷上傳的文件是否包括你要忽略的文件,如果有的話就拒絕上傳。
❺ 怎麼設置TortoiseSVN,實現文件夾過濾
在您使用SVN版本控制的根目錄,右鍵,選擇TortoiseSVN-->Settings
在彈出的對話框中,選擇第一大項(此專項是默認屬選擇的),找到右邊的Subversion-->Global ignore pattern , 在後面加入需要禁止的文件夾,比如 bin ,就加入 *bin
obj 就加入 *obj ,注意,多個之間用單個空格(鍵盤上最長的個按鍵)分開、
設置完成之後,新建一個obj.txt , 測試通過,至此,使用 svn 過濾策略成功過濾掉文件夾,同樣 過濾文件一樣的,前提是需要您對正則表達式有一定的了解、
❻ 怎麼設置TortoiseSVN,實現文件夾過濾
方法/步驟
1,在您使用SVN版本控制的根目錄,右鍵,選擇TortoiseSVN-->Settings
2,在彈出的對話框中,選擇第一大項(此項是默認選擇的),找到右邊的Subversion-->Global ignore pattern , 在後面加入需要禁止的文件夾,比如 bin ,就加入 *bin
obj 就加入 *obj ,注意,多個之間用單個空格(鍵盤上最長的個按鍵)分開。
3,設置完成之後,新建一個obj.txt , 測試通過,至此,使用 svn 過濾策略成功過濾掉文件夾,同樣 過濾文件一樣的,前提是需要您對正則表達式有一定的了解。
❼ SVN如何設置自動檢查本地文件與伺服器文件是不是不一樣
不能,SVN自身沒有這個功能
但是你為什麼不直接執行update呢,執行完了有更新就更新,沒更新就OK唄,這又不費事
❽ visualSVN如何通過hook對提交文件進行過濾
打開控制台,在Repository屬性中,找到hooks,添加 pre-commit 的 hook 處理示例:下面內容,對用戶提交的內容進行檢查,如果提交列表中有 pom.xml ,.project等文件,取消操作,顯示提示信息。如果當前提交者是 admin ,則允許。這是 windows batch 批處理腳本。相關語句說明: 1、@echo off echo off是關閉回顯,不顯示命令內容。舉例:如果你有一個test.bat,內容只有一行:dir,那執行後,輸出的內容可能是:如果你在最前面加上echo off,那輸出的內容可能是: 兩者對比,你可以發現,dir這個命令在下面的示例中不再顯示。 然而,由於加了一條語句 echo off,而這條語句在生效前,還是會回顯的,所以你看到輸出中有 c:\>echo off,是否有辦法讓這條語句也不顯示呢?可以,我們只要在 echo off 前加上 @ 就可以了。那這樣,我們的 test.bat 內容如下:這回執行的結果可能是: 2、setlocal 加上這條命令,避免批處理中對環境的改變影響到系統環境。如PATH 3、for 循環上面這句,要分解一下 for /f %%k in (『command』) do stat /f 是指定循環類型,這是迭代,用得最多的循環。 %%k 是變數,每次取出的值都會保存在裡面。 'command' 用單引號指明要執行的命令,命令處理後,在控制台輸出的內容會被 for 命令一行行取出處理。 stat 要執行的處理,如果有多條,可以用()包含多行命令。再來看一下命令 svnlook author %REPOS% -t %REV% svnlook 是 visual svn 安裝後,在其 bin 目錄下的管理工具,可以查看Repository 的相關信息,如目錄,日誌等。具體可使用 svnlook help 查看幫助。 author 是查看用戶名。 %REPOS% 是hook 傳過來的Repository 路徑,如 C:\myRepository\projectA -t%REV% %REV%是 hook 傳過來的事務ID號,如果不加參數 -t 則可以指定版本號。使用這條命令,我們可以提取出當前提交者的用戶名。 4、if "%user%" == "admin" goto admin 這是條件判斷,如果用戶名是 admin,使用 goto 語句,跳轉到標簽為 :admin 的地方,這在批處理的最後定義了。 5、for /f %%k in ('svnlook changed %REPOS% -t %REV% ^| find /c /i "pom.xml"') do @set /a count=%% k 這條語句與前面的 for 語句差不多,主要是 'command' 不同。 svnlook changed,這里可以列出所有提交的更新文件列表。 find /c /i "pom.xml 這是搜索語句,查找 pom.xml,/c 表示只顯示搜索結果的條數, /i 表示不區分大小寫在這兩條語句的中間,是管道符 |,表示將前者輸出的內容,作為後者處理的輸入內容,也就是將所有提交的文件列表,交給 find 去搜索,並統計有多少個 pom.xml 在管道符的前面,有個轉義符 ^,其作用是將這特殊的字元當前普通字元串,而不是命令。如果沒加這個轉義符,那這個 'command' 就不是一個整體了,以至語法出錯。這里是將其作為字元串,而 for 命令則將這個字元串再作為命令來處理,避免語法嵌套,解析錯誤。(這一點,之前不知道,總是提示語法錯誤,花了我不少時間才找出問題所在。) 5、取消 commit 要取消commit ,只要返回非0的結果代碼即可。如:exit 1 6、echo 請不要提交 "target" >& 2 前面沒問題,是普通的 echo,後面是一個重定向。將輸出的內容發送到錯誤輸出的 stderr。 0 標准輸入 stdin,鍵盤輸入 1 標准信息輸出 stdout,輸出到控制台 2 標准錯誤輸出 stderr,輸出到控制台如果不加 >& 2,那svn客戶端是看不到提示信息的,必須要輸出到 2 另外,如果提示說:Failed to start 'xxx/pre-commit.cmd' hook,可能需要有控制面板,高級,服務里,將 visual svn的用戶改為本地用戶。 [plain] 1. @echo off 2. setlocal 3. set REPOS=%1 4. set REV=%2 5. set path="C:\Program Files\VisualSVN Server\bin\";%path% 6. 7. for /f %%k in ('svnlook author %REPOS% -t %REV%') do set user=%%k 8. if "%user%" == "admin" goto admin 9. 10. for /f %%k in ('svnlook changed %REPOS% -t %REV% ^| find /c /i "pom.xml"') do @set /a count=%%k 11. if NOT %count% == 0 ( 12. echo 請不要提交 "pom.xml" >& 2 13. exit 1 14. ) 15. 16. for /f %%k in ('svnlook changed %REPOS% -t %REV% ^| find /c /i ".project"') do @set /a count=%% k 17. if NOT %count% == 0 ( 18. echo 請不要提交 ".project" >& 2 19. exit 2 20. ) 21. 22. 23. for /f %%k in ('svnlook changed %REPOS% -t %REV% ^| find /c /i ".classpath"') do @set /a count=%% k 24. if NOT %count% == 0 ( 25. echo 請不要提交 ".classpath" >& 2 26. exit 3 27. ) 28. 29. for /f %%k in ('svnlook changed %REPOS% -t %REV% ^| find /c /i "target"') do @set /a count=%%k 30. if NOT %count% == 0 ( 31. echo 請不要提交 "target" >& 2 32. exit 4 33. ) 34. 35. for /f %%k in ('svnlook changed %REPOS% -t %REV% ^| find /c /i ".settings"') do @set /a count=%% k 36. if NOT %count% == 0 ( 37. echo 請不要提交 ".settings" >& 2 38. exit 4 39. ) 40. 41. :admin 42. exit 0 [plain] 1. C:\>test 2. 3. C:\>dir 4. 驅動器 C 中的卷是 WINXP 5. 卷的序列號是 8C4E-88D3 6. 7. C:\ 的目錄 8. 9. 2011-04-28 08:55 Documents and Settings 10. 2011-12-14 09:32 Intel 11. 2012-03-03 10:26 Oracle 12. 2012-03-19 13:22 Program Files 13. 2011-12-14 09:34 2,122 RHDSetup.log 14. 2012-03-24 15:26 6 test.bat 15. 2012-03-09 16:44 WINDOWS 16. 2 個文件 2,128 位元組 17. 5 個目錄 41,156,255,744 可用位元組 [plain] 1. C:\>test 2. 3. C:\>echo off 4. 驅動器 C 中的卷是 WINXP 5. 卷的序列號是 8C4E-88D3 6. 7. C:\ 的目錄 8. 9. 2011-04-28 08:55 Documents and Settings 10. 2011-12-14 09:32 Intel 11. 2012-03-03 10:26 Oracle 12. 2012-03-19 13:22 Program Files 13. 2011-12-14 09:34 2,122 RHDSetup.log 14. 2012-03-24 15:28 17 test.bat 15. 2012-03-09 16:44 WINDOWS 16. 2 個文件 2,139 位元組 17. 5 個目錄 41,156,255,744 可用位元組 [plain] 1. @echo off 2. dir [plain] 1. C:\>test 2. 3. 驅動器 C 中的卷是 WINXP 4. 卷的序列號是 8C4E-88D3 5. 6. C:\ 的目錄 7. 8. 2011-04-28 08:55 Documents and Settings 9. 2011-12-14 09:32 Intel 10. 2012-03-03 10:26 Oracle 11. 2012-03-19 13:22 Program Files 12. 2011-12-14 09:34 2,122 RHDSetup.log 13. 2012-03-24 15:31 18 test.bat 14. 2012-03-09 16:44 WINDOWS 15. 2 個文件 2,140 位元組 16. 5 個目錄 41,156,255,744 可用位元組 [plain] 1. for /f %%k in ('svnlook author %REPOS% -t %REV%') do set user=%%k