2012-09-28 14:21:16nut

[技術]架設SVN

 公司有在用SVN, 上次SVN SERVER所在的機器正好壞了送修, 同仁好多天無法使用

想說, 趁有空時把SVN備援學起來, 日後有需要的話, 就可以把SVN移到別台機器去, 讓服務不中斷

SVN說明文件
http://twpug.net/docs/Subversion/#svn-ch-2-sect-2.1
其他相關
http://blog.yam.com/keynes0918/article/36722024

在說明文件中找到各OS的SVN下載點, 我選下載Visual SVN
下載回來的程式放在這裡
看了一下, Visual SVN Server就是在Group-EIP上用的程式

想到自己的CPC虛擬機就是SERVER, 開虛擬機把Visual SVN Server架上去
結果….意外的簡單耶! 我完全下一步下一步, 全都是預設值沒有改, 就把Visual SVN Server架起來了…^_^
畫面如下
紅色框中的就是連結至SVN的URL

SVN預設是用AD帳號密碼框認證的方式登入的, 但她不是真的跟AD綁住(也許也是我在灌的時候沒有選WINDOWS認證, 沒有跟AD結合),
所以要登入的話要新增USER或Group
新增一個帳號AAA, 用https://我的主機名稱/svn登入
打入我在SVN設號的帳號密碼, 登登, 可以進去了^_^
右上方有說明文件, 可以參照

好, 我們的目標是可以將目前的SVN備份可以完整匯入到新的SVN, 並且同樣的網址可以連得上.

所以接下來要做的, 就是使用SVN, 將已有的SVN備份完整匯入到新的SVN.
1. 先建立一個檔案庫

URL=https://我的主機名稱/svn/TEST1(檔案庫名稱)
 
2. 丟幾個檔案上去
看到一個很不錯的參考資料
照著這個參考資料得知, 存取檔案必須要用Client, 網路上是推薦TortoiseSVN,
這邊來了一個問題, 我的server是虛擬機, 所以我的svn server用網址連, 在虛擬機裡面連是可以的, 但是用實機去連就不行了, 最好的狀況當然是我在實機上架Client, 虛擬機上架server, 且client連server 是ok的
如果我把虛擬機加上一個IP, 這樣我連得到嗎? 可以
恩 可以試試, 但是也可以先在server上把client也裝上去, 本機去連看看是否ok, 增加其單純性.

灌上TortoiseSVN跟語言包之後, 重開機, 並且新增一個資料夾, 按下右鍵, 可以看到右鍵的快捷鍵有增加SVN的選單
 
設定語言
我們已經灌好語言包了, 進SETTINGS, 把語言換成繁體中文

變成中文的了
 
取出SERVER上的專案資料夾
我把這個資料夾按下右鍵=>選擇SVN資料取出

檔案庫選擇TEST2(當然, VisualSVN中必須先建立TEST2檔案庫)

設定完後並按下確定
登登, 底下出現TEST2檔案庫的資料夾囉! 把要擺的檔案放在這裡邊就行了
 
一開始, TEST2上會出現綠色勾勾
 
當你檔案修改過後他會出現紅色驚嘆號
EX.
在TEST內丟上一份”TEST.TXT”
在TEST2上右鍵=>TortoiseSVN=>加入, 會出現剛丟上來的檔案列表, 讓我可以選擇哪幾份要上傳到SERVER
 
按下確定
可以看到, TEXT.TXT已經上傳到SERVER上, TEST2的綠色勾勾也顯示成紅色驚嘆號
 
如果有下列需求的話, 可以使用”重新定位”功能, 將檔案來源改寫
• The IP address of the server has changed.
• The protocol has changed (e.g. http:// to https://).
• The repository root path in the server setup has changed.
當我們把檔案放進檔案庫, 確認無誤後, 就可以把檔案上傳到server上
在檔案夾上右鍵=>SVN送交, 就行了
 
送交上去後, 用網頁去瀏覽, 可以看到版本變成1, 且有出現已上傳的檔案
 
如果是多人開發, 要取SERVER上的最新版本時, 一樣右鍵=>SVN更新, 就可以把最新版本取出
 
3. 把資料匯出匯入
其實非常簡單, 把原本SVN的檔案庫中的檔案全部COPY出來, 再貼到新的SVN檔案庫路徑中即可
那 SVN的檔案庫資料存在哪裡呢?
檔案庫的資料預設是存在D:\Repositories\, 這個路徑是可以改的,

   在VisualSVN Server的根目錄按下右鍵=>Properties
 

彈出設定視窗, 可以在此設定檔案庫的放置位置
 

我想把檔案庫改放在D:\Visual_Server\Visual SVN\, 所以把檔案庫的存放路徑改為D:\Visual_Server\Visual SVN\, 按下確定
如果該路徑沒有相對應資料夾, 會彈出詢問視窗問你要不要新增

確定之後, 可以看到D:\出現了我們指定的資料夾

接下來要匯入資料囉, 把Visual SVN關掉, 把檔案庫的資料剪下貼上到D:\Visual_Server\Visual SVN\
重開Visual SVN, 可以看到裡面有剛copy過來的2個專案

再來, 我們進到tutories SVN, 利用”重新定位”功能, 將Client端存取的位置改正
url確認無誤後, 按下確定

接下來, 我把之前公司的svn備份檔copy過來, 看看是否可以存取
先把svn關掉
把備份檔複製到檔案庫中
複製完後重開svn, 可以看到檔案庫中已有複製過來的專案資料夾了
 
試著用網頁連進去, 阿~出現錯誤
 
可能是公司備份把我加的登入者帳號覆蓋過去了
點進users一看, 果然如此
 
把我的登入帳號加入後, 再用網頁去看, 嘿嘿~! 看到了^^
 
只要有專案權限, 就可以點進去看
 
這樣, 就算匯入成功了!^^

在client端, 在放svn檔案的根目錄右鍵=>SVN取出, 把這些公司專案一個個設定好, 取出工作複本
 
設定一個公司專案CPC-123, 設定相對應的目錄與URL
 
 打入帳密後, 檔案複本就會下載下來
 檔案複本下載成功後, 出現了CPC-123的檔案夾,
 
點進去一看, 嘿嘿~! 裡面就是我們所要的專案資料啦!
 
檔案修改後, 再用”SVN送交”上傳即可

再來, 試著把虛擬機的IP架為固定IP(這是測試記得拿掉喔), 試試看我的本幾是否可以PING得到, 想辦法連過去
不行~! 改IP之後還是沒法連, 可能虛擬機要設定為Bridge
把設定值改為bridge (原本是選用NAT)
 
改好後就通了
試著本機用url(https://IP/svn)去連
 連到了 歐耶! 打入帳密
連進來了^^
 
代表, 在正式區時, 應該只要該Server有連通, 改DNS應該就行了!

P.S. 我已經把設定回復原狀, 之後要再做此測試時, 要把虛擬機的IP設為固定IP, 該虛擬機的設定值, 網路類型則要設為橋接

感想
其實SVN SERVER的備援很簡單, 把檔案複製貼上, 權限設定好就行
剩下的都是Client端的設定
不過SVN真的很不賴, 輕巧簡易又功能完善, 難怪公司會拿來使用~
更重要的是, 花了2天時間把SVN的備援搞定, 真的好有成就感喔! ^^

 

資料來源

SVN(Subversion TortoiseSVN)設定大全

juee.com.tw

 

威爾剛 2020-01-13 07:15:39

很不錯的分享~~!


http://www.yyj.tw/