回覆列表
  • 1 # 使用者5991418758074

    SVN,即subversion,是一個開源的版本控制系統,版本控制器。是CVS的派生版。

    它是一個C/S模式的軟體,既有SVN伺服器,也有SVN客戶端。利用它可以將資料更新到最新版本,也可以找回歷史版本,可以檢查檔案的修改歷史。

    1. SVN的基本功能

    根據檔案修改的次數,自動增加版本庫的版本號(庫中所有的檔案共用一個版本號),以便找回歷史檔案。

    2. 軟體的安裝

    伺服器的安裝(建議先安裝伺服器)

    Setup-Subversion-1.6.17.msi

    客戶端的安裝

    TortoiseSVN-1.6.16.21511-win32-svn-1.6.17.msi

    裝完客戶端後,需要重啟電腦。

    安裝完畢以後,在桌面右擊滑鼠,如果出現兩個SVN相關的選項,說明SVN安裝成功

    3. 伺服器的搭建

    a. 建立一個空資料夾,作為SVN伺服器的目錄 例如 E:\server 資料夾的名字可以隨便取

    b. 進入該資料夾,右鍵,選擇 TortoiseSVN 選單,單擊裡面的 Create repository here(建立版本庫)。系統就會自動在該目錄中生成一些檔案和資料夾

    c. 修改conf資料夾中的passwd配置檔案,新增程式碼 yangjun = 123456 即新增使用者和設定密碼

    d. 修改conf資料夾中的svnserve.conf主配置檔案,去掉 # password-db = passwd 所在行的註釋。 (目的是讓passwd配置檔案生效)

    這樣,SVN伺服器就搭建好了。

    4. 伺服器的啟動

    開啟Windows的命令列,執行命令 svnserve.exe -d -r E:\server

    之後,SVN伺服器的目錄(版本庫)E:\server 就可以被SVN客戶端訪問了。需要注意的是,命令列介面(DOS介面)不能關閉,否則服務就停止了。

    5. 客戶端的使用

    a. 新建一個空資料夾作為SVN客戶端的目錄。 例如 F:\user1

    b. 進入該資料夾,右鍵,選擇 TortoiseSVN 選單,單擊裡面的 Repo-browser(瀏覽版本庫),會彈出URL的輸入框,輸入 svn://127.0.0.1 或 svn://localhost (前面的表示訪問伺服器的協議,後面的表示伺服器所在主機的ip)。

    c. 右鍵,選擇 SVN Checkout(檢出),連線伺服器(第一次連線伺服器的時候,需要檢出,以後就不需要了)。

    6. SVN客戶端的目錄中的檔案的圖示及含義

    問號 表示該檔案是剛引入的新檔案,還未被SVN版本庫識別

    加號 表示該檔案已經新增至伺服器的觀察名單,但還未上傳至伺服器

    對號 表示該檔案的版本和伺服器中的版本是一樣的

    感嘆號 表示該檔案的內容和伺服器中的檔案內容不一樣,也就是從版本庫同步之後,該檔案又作了修改,但還未上傳至伺服器

    鎖 表示該檔案已被鎖定

    客戶端目錄中新新增的檔案,由於還未被伺服器識別,所以是以問號標識的。

    選擇問號標識的檔案,右鍵,選擇 TortoiseSVN 選單,單擊裡面的 Add 選項,新增至伺服器的觀察名單。這時,問號就變成了加號。

    選擇加號標識的檔案,右鍵,選擇 SVN Commit(提交),執行上傳。會彈出一個對話方塊,輸入使用者名稱和密碼即可。這時,加號就變成了對號。

    把對號標識的檔案內容進行更改後,對號就變成了感嘆號。

    選擇感嘆號標識的檔案,右鍵,選擇 SVN Commit(提交),執行上傳。之後,感嘆號就變成了對號。

    選擇對號標識的檔案,右鍵,選擇 TortoiseSVN 選單,單擊裡面的 Get lock (鎖定)。之後,對號就變成了鎖。

    選擇鎖標識的檔案,右鍵,選擇 TortoiseSVN 選單,單擊裡面的 Release lock (解鎖)。之後,鎖就變成了對號。

    7. 遠端使用者下載SVN伺服器中的檔案的步驟

    這裡在F盤新建一個空目錄 F:\user2 進行模擬。

    進入該資料夾,右鍵,選擇 SVN Checkout(檢出),連線伺服器,輸入正確的URL。就會自動把版本庫中的所有檔案下載到當前目錄。

    以後,如果版本庫中的檔案有改動,右鍵,選擇 SVN Update(更新),就可以和版本庫中的檔案同步。即當前客戶端目錄中的檔案和版本庫中的一致。

    可以理解為使用者第一次下載用 SVN Checkout(檢出),以後下載就用 SVN Update(更新)。

    9. 歷史版本的找回

    在客戶端目錄 F:\user1 中,右鍵,選擇 TortoiseSVN 選單,再單擊 Update to revision,彈出一個對話方塊,選擇 revision,輸入你想恢復到的版本號(一般是上一個版本號),確定。

    10. 歷史版本間的差異對比

    如果某一個檔案被多個人依次更新修改過,之後,大家也都同步了伺服器的版本庫。發現,某一個檔案被別人更新過,可以透過以下方法檢視差異。

    選擇被更新的檔案,右鍵,選擇 TortoiseSVN 選單,再單擊 Diff with previous version,會對比顯示出該檔案的歷史版本和當前版本的差異。

    左邊的是歷史版本,右邊的是當前版本。

    11. 衝突的解決

    衝突指定的是,當多個人同時對同一個檔案進行修改後,某一個使用者(user1)先進行了提交(更新了伺服器的版本庫),其他使用者(user2)後進行的提交,此時,就會出現檔案過時而無法提交的現象(因為user2修改的檔案版本不是最新版本,所以會提示檔案過時,導致無法提交)。

    衝突的產生是SVN版本控制器的一個保護措施,可以有效防止客戶端中低版本的檔案覆蓋伺服器中高版本的檔案。

    如何解決衝突?

    選擇出現衝突的檔案,右鍵,選擇 TortoiseSVN 選單,再單擊 Edit conflicts,會對比顯示出該檔案的伺服器版本和自身版本的差異。

    左邊的是伺服器的版本,右邊的是自身版本。

    衝突的解決,是靠人為手動來解決的,一般是衝突相關的多個使用者之間商量後,決定以某個檔案版本為主。比如,經過大家商量後,決定以伺服器中的版本為主。接下來,就應該這樣操作: 在左邊區域(伺服器的版本),右鍵,選擇 use this whole file或者在產生衝突的行,右鍵,選擇 use this text block 來各取所長,依次處理完所有有衝突的行,之後,點選儲存,關閉視窗。

    然後,選擇出現衝突的檔案,右鍵,選擇 TortoiseSVN 選單,再單擊 Resolved(已解決)。告訴SVN衝突經大家商量後,已經解決。

    這時,該檔案就可以正常提交了。選擇它,右鍵,選擇 SVN Commit(提交),上傳至伺服器。最後可以看到檔案的標識變為對號。

    12. 將SVN伺服器安裝至系統服務

    前面我們說過,SVN客戶端操作的過程中,開啟SVN服務的命令列視窗不可以關閉,否則,SVN服務也會終止,導致客戶端無法連線伺服器。

    這裡,我們可以把SVN服務新增到系統的自啟動服務當中。操作方法如下:

    重新開啟 cmd 命令列,在命令列中執行以下命令

    sc create svnserve binpath= "D:\Program Files\Subversion\bin\svnserve.exe --service --root E:\server"

    如果提示 “[SC] CreateService 成功”,則表明建立系統服務成功。此時,新增的服務名為svnserve,狀態預設是關閉的,啟動方式為手動。

    之後,我們就可以利用Windows系統自帶的服務管理介面進行管理,比如開啟SVN服務,設定為自啟動等。而不用透過命令列來控制了。

    13. 取消記住的使用者名稱和密碼

    如果在進行身份驗證的時候,我們勾選了記住使用者名稱和密碼。那麼,當我們需要使用別的使用者名稱進行操作時,便會出現無法更改賬號的情況,這時,我們可以取消記住的使用者名稱和密碼。下次進行身份驗證的時候,我們就可以選擇輸入其他的使用者名稱和密碼。

    取消記住使用者名稱和密碼的方法:

    14. 許可權管理

    SVN的預設許可權設定是匿名使用者也可以連線到伺服器,訪問伺服器中的檔案,還可以進行下載。也就是說,任何一個人只要知道了SVN伺服器所在主機的ip,就可以下載版本庫中的所有檔案。這種預設的許可權設定是不安全的。因此,我們有必要進行SVN伺服器的許可權管理。

    開啟SVN伺服器的主配置檔案 E:\server\conf\svnserve.conf,將這行程式碼

    # anon-access = read

    修改成

    anon-access = none

    儲存即可。

    之後,匿名使用者對伺服器就沒有讀的許可權。也就是說,使用者在瀏覽版本庫和下載檔案時,需要輸入使用者名稱和密碼。

    15. 許可權分配

    許可權分配指的是,給不同的使用者分配不同的許可權,比如,需要設定某些使用者(管理員)對所有的檔案都有讀和寫的許可權,其他使用者(普通使用者)只有讀的許可權或者只對伺服器目錄中的某個資料夾有讀和寫的許可權時,就可以用到許可權分配。

    這時,我們需要修改伺服器配置檔案目錄( E:\server\conf )中的三個配置檔案:svnserve.conf 、passwd 和 authz。

    詳細操作方法可自行查閱相關文件·

  • 中秋節和大豐收的關聯?
  • 赴美生子簽證好辦嗎?