一、如何在本機下操縱SVN
使用步驟
1、下載svn(TortoiseSVN),測試svn是否成功:
svn --version
2、創建本地臨時文件目錄,這里是模擬服務端的倉庫,代碼提交地方,也是代碼拿取的地方,假如項目做的事OA系統,就將代碼放入OA中
3、利用svn在臨時文件目錄中創建中央倉庫
svnadmin create D:\Temp\OA
此時在OA目錄中會生成一些文件目錄
4、啟動服務端程序
D:\Temp\OA>svnserve -r -d D:\Temp\OA #-r表示版本根目錄 -d表示后台執行
5、注冊windows的svn服務
sc create MySVNService binpath= "D:\SVN\bin\svnserve.exe --service -r D:\Temp\" start= auto depend= Tcpip
並檢驗服務是否啟動:
6、此時客戶端可以訪問服務端(注意:此時是另外開啟一個cmd窗口),這里是復制主工作空間
先創建一個文件夾,用戶開發者操作空間,這里是代碼提交和拿取的工作空間,如D:/TempOA/MyOA/OA,該OA文件夾中擁有helloword.txt文件,用於模仿即將提交的代碼
D:\TempOP\MyOA>svn checkout svn://localhost/OA
7、提交文件
D:\TempOP\MyOA\OA>svn commit helloword.txt
此時會報錯,是因為說明該文件沒有納入版本控制,不可以提交到服務器端。
8、納入版本控制
D:\TempOP\MyOA\OA>svn add helloword.txt #A表示剛剛加入倉庫
9、提交代碼
此時報錯是因為提交代碼時得注明一些提交的信息,如提交版本、提交人等。。
D:\TempOP\MyOA\OA>svn commit -m "first commit" helloword.txt
此時還會報錯,是因為沒有權限操作OA,得到OA中設置訪問權限
打開服務端文件夾D:/Temp/OA中的svnserve.conf文件夾,打開# anon-access = read注釋,並將read改為write
此時通過cmd窗口再次提交代碼,代碼可以提交成功
10、檢驗是否提交成功
創建一個新文件夾用於模擬另外一個開發者Temp2,從服務端復制倉庫
此時Temp2中會生成OA文件夾,其目錄中有helloword.txt文件,說明提交成功
11、改變版本提交
向helloword.txt文件夾中新添一些數據,並提交代碼
D:\Temp2>cd OA
D:\Temp2\OA>svn commit -m "jiaxianseng commit" helloword.txt
此時可以看出提交的版本變成了2
12、更新版本庫
此時開發者一還是原來的版本,更新需要update命令
D:\cd TempOA D:\TempOA>cd MyOA D:\TempOA\MyOA>cd OA D:\TempOA\MyOA\OA>svn update helloword.txt
二、SVN在myeclipes中的使用
1、前提本機中安裝了svn客戶端
2、下載myeclipes的svn插件:下載插件
3、將下載好的壓縮包解壓,並將其中的features文件夾和plugins文件夾復制到myeclipes安裝目錄中的dropins目錄中
4、啟動myeclipes
5、新建項目,右鍵點擊項目,選擇Team中share project,選中SVN
6、選擇創建新的資源位置,並指定URL
7、此時會提示是否進入同步界面,選擇yes,此時可以提交代碼,可以指定提交部分,也可以整個項目一起提交,右鍵點擊項目,選擇提交,並寫上備注
8、其他開發者如果想要拿取代碼,直接采用import->SVN
相關注意項:
SVN有幾個圖表需要注意:
1) 金色圓筒表示版本和倉庫保持一致
2) 黑色星號表示在原有文件中新增內容但是未提交,
3) 問號表示新增類但是未提交,未參與版本比對
三、關於SVN沖突與解決
1、什么是SVN沖突
SVN沖突是指兩個開發者更改同一個地方(如同一條語句),后來提交的人會顯示SVN沖突,表示提交已經過時
2、關於SVN沖突的解決
1) 若出現以上情況,先更新代碼,此時會出現以下內容,顯示在兩者版本不同的地方
2) 項目下也會新增歷史版本,方便開發者進行對比
3) 右鍵點擊發生沖突的文件,點擊Team->編輯沖突,此時會出現兩個版本不一致的地方,只要點擊保存,默認認為你沖突已經解決
4) 沖突解決后,有沖突的類會變成圖下的形式
右鍵點擊原來沖突的類,選擇Team->標記為解決,此時項目下的歷史版本就會自動刪除,此時提交不會出現錯誤
四、關於SVN設置權限
SVN設置權限是基於對代碼的安全性操作,防止非權限用戶操作代碼
1、編輯svnserve.conf文件
1) 之前是采用的匿名訪問,如果要設置權限,首先得開啟授權訪問代碼
# anon-access = write #匿名訪問 auth-access = write #授權訪問
2) 開啟password-db,表示用哪個文件來保存用戶名密碼信息
password-db = passwd
3) 開啟authz-db ,表示用authz文件來保存授權信息
# authz-db = authz
2、編輯passwd文件,該文件是用來新增授權用戶名及其密碼
這里新增tom和jerry用戶
tom = 123456 jerry = 123456 ceshi = 123456
3、編輯
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe kaifa = tom,jerry #新增用戶組 # [/foo/bar] # harry = rw # &joe = r # * = [/] #表示在跟路徑下 @kaifa = rw #開發組有讀和寫的權限 ceshi = r #測試只有讀權限 * = #過濾其他用戶,沒有讀寫權限
4、此時代碼的更新和提交都需要經過用戶驗證
五、關於SVN的“時光機”
SVN時光機是指查看獲得歷史提交的版本
1、想要獲得歷史版本,首先得將配置文件svnserve.conf文件中的匿名用戶設置為none
anon-access = none
auth-access = write
2、此時右鍵點擊項目文件,選擇team->顯示資源歷史記錄,便可查看到歷史的版本