天天看點

Windows下SVN用戶端的安裝與初步使用

        在上篇博文《Windows下SVN服務端的安裝與初步使用》中我們已經安裝好了SVN服務端,這篇博文就将對SVN用戶端進行安裝和使用,在上篇博文中已經說過SVN最好的就是VisualSVN Server服務端和 TortoiseSVN用戶端搭配起來一起使用,安裝TortoiseSVN用戶端用戶端之前我們首先需要進行TortoiseSVN用戶端安裝包的下載下傳。

1、TortoiseSVN用戶端的下載下傳與安裝

        下載下傳TortoiseSVN用戶端安裝封包件,進入http://subversion.apache.org/packages.html#windows 下載下傳TortoiseSVN用戶端的安裝檔案,如下圖:
Windows下SVN用戶端的安裝與初步使用

圖1-1 下載下傳TortoiseSVN用戶端安裝包

        下載下傳之後直接輕按兩下進行安裝,這裡就不再一步一步說明安裝過程了。

        安裝完成後,比如在我的桌面右鍵(或者在你建立的項目檔案夾)就可以看到如下圖:

Windows下SVN用戶端的安裝與初步使用

圖1-2 安裝完成之後右鍵

        說明TortoiseSVN用戶端已經安裝成功了!

2、TortoiseSVN用戶端的使用

① Checkout項目檔案
在右鍵菜單中點選SVN Checkout,如下圖:
Windows下SVN用戶端的安裝與初步使用

圖2-1-1 Checkout項目檔案

其中URL我可以在SVN伺服器擷取到,我在Code下quanduan項目檔案夾右鍵進行Copy URL,然後進行粘貼即可,如下圖:

Windows下SVN用戶端的安裝與初步使用

圖2-1-2 Copy URL進行粘貼

點選OK之後就可以就可以将項目檔案檢索下來的,如下圖:

Windows下SVN用戶端的安裝與初步使用
圖2-1-3 檢索項目檔案過程(如果你是第一次檢索中間會有讓你輸入使用者名命名的過程,這個在上篇博文中已經建立)
Windows下SVN用戶端的安裝與初步使用

圖2-1-4 檢索下來在電腦本地的項目檔案

        至此,我們已經将項目檔案檢索完畢了。

注意事項:

        .svn這個隐藏目錄記錄着兩項關鍵資訊:工作檔案的基準版本和一個本地副本最後更新的時間戳,千萬不要手動修改或者删除這個.svn隐藏目錄和裡面的檔案!!,否則将會導緻你本地的工作拷貝(靜态試圖)被破壞,無法再進行操作。

② 增加檔案(Add)

在test項目檔案下,建立一個6.txt檔案,送出到版本庫的方法如下2種(如下圖):

        Ⅰ 先提到變更清單中,再commit到配置庫中,選擇新增檔案,右鍵SVN菜單執行“Add“操作送出到”變更清單中”,然後右鍵SVN菜單執行”SVN Commit”送出到版本庫中。

        Ⅱ不送出到變更清單中,而是直接commit配置庫中,選擇該檔案,右鍵svn菜單執行”SVN Commit”操作。

Windows下SVN用戶端的安裝與初步使用
圖2-2-1 增加檔案(Add)
Windows下SVN用戶端的安裝與初步使用

圖2-2-2 我選擇第二種方式直接送出

③ 删除檔案(Delete)

如果被删除的檔案還未入版本庫,則可以直接使用作業系統的删除操作删除該檔案。

如果被删除的檔案已入版本庫,則删除的方法如下:

        Ⅰ 選擇被删除檔案,右鍵svn菜單執行”delete”操作,然後選擇被删除檔案的父目錄,右鍵svn菜單執行”SVN Commit”。

        Ⅱ 使用作業系統的删除操作删除該檔案,然後選擇被删除檔案的父目錄,右鍵svn菜單執行”SVN Commit”,在變更清單中選擇被删除的檔案。

如下圖:

Windows下SVN用戶端的安裝與初步使用
圖2-3-1 删除檔案(這裡使用的是Ⅰ)
④ 檔案重命名(Rename)
        修改檔案名,選中需要重命名的檔案或檔案夾,然後右鍵“TortoiseSVN->Rename“,在彈出的對話框中輸入新名稱,點選”ok”按鈕,并将修改檔案名後的檔案或檔案夾通過 “SVN Commit”送出到SVN伺服器上。
⑤ SVN還原(SVN Revert)
右擊想要回退的檔案或者檔案夾,在TortoiseSVN彈出菜單中選擇”Update to reversion…” 然後會彈出一個視窗,如下圖:
Windows下SVN用戶端的安裝與初步使用

圖2-5-1 SVN還原

        比如說我們要回退到第10個版本隻需要在Revision中填寫相應的版本号,然後點選ok即可。如果你不記得版本号,你可以進行show log檢視送出的版本日志資訊。

⑥ 檢查更新(Check for modifications)
        此功能可以顯示你所做的修改有哪些還沒有送出的,此功能不光能看到對檔案的修改變化,所有的變化都能看到,包括增加檔案或者目錄,删除檔案或者目錄,移動檔案或者目錄等,如果你點選了檢查版本庫,那你還可以看到版本庫裡的改動,既别人送出了哪些檔案的改動,你還沒更新到本地,如下圖:
Windows下SVN用戶端的安裝與初步使用
圖2-6-1 檢查更新
⑦ SVN更新(SVN Update)
        更新本地代碼與SVN伺服器上最新的版本一緻,隻要在需要更新的檔案夾上點選右鍵或者在檔案下空白處點選右鍵,選擇”SVN Update” (擷取指定版本中的内容,點選右鍵執行SVN菜單中的“Update to reversion“),就可以了。
⑧ SVN送出(SVN Commit)
        Svn的送出是将在工作空間做的修改進行送出,包括檔案内容的修改,檔案或目錄的添加,删除,命名,移動等操作。直接右鍵-》SVN Commit即可。
⑨ 顯示日志(Show log)
       通過此功能可以查到誰,什麼時候,對那個目錄下的那些檔案進行了那些操作,如下圖:
Windows下SVN用戶端的安裝與初步使用
圖2-9-1 顯示日志(Show log)
⑩ 版本庫浏覽(Repo-browser)
        此功能是用來浏覽需要檢視的資料庫,在本地檔案夾下點選右鍵,選擇TortoiseSVN->Repo-browser,在彈出的對話框中輸入資料庫位址,再輸入使用者名和密碼,就能檢視到你需要檢視到版本庫的内容,在這你還能看到那些檔案被誰鎖定了,如下圖:
Windows下SVN用戶端的安裝與初步使用
圖2-10-1 版本庫浏覽(Repo-browser)
【注】:TortoiseSVN 圖示介紹
Windows下SVN用戶端的安裝與初步使用

Ⅰ 對勾

        一個新檢出的工作複本使用綠色的對勾重載(或是已經送出完成的),表示Subversion狀态正常。

Ⅱ 問号

        一個建立的檔案,或是重命名檔案使用問号。

Ⅲ 紅色感歎号

        在你開始編輯一個檔案之後,狀态就變成了已修改,而圖示重載已變成了紅色感歎号。通過這種方式,你可以很容易地看出那些檔案從你上次更新工作複本被修改過,且需要送出。

Ⅳ 黃色感歎号

        如果在送出的過程中出現了沖突,圖示就會變成了黃色感歎号。

Ⅴ 加号

        加号表示有一個檔案或者目錄已經被計劃加入到版本控制中。

3、SVN送出沖突處理

        對于每個沖突的檔案Subversion在你的目錄下放置了三個檔案,如下圖:
Windows下SVN用戶端的安裝與初步使用

圖3-1 檔案送出沖突圖示

        為什麼會産生沖突代碼呢?原因很簡單就是因為不同的人,同時修改了同一個檔案的同一個地方,這時候,他送出了,我沒有送出,我就送出不了,這個時候我們要進行先更新,然後在進行送出即可,那如果産生沖突,會生成如上3個檔案。

解決方案如下:

首先我們可以看下1.txt代碼如下:

        <<<<<<< .mine

        echo 123; var_dump(456);

        =======

       b>>>>>>> .r5

然後我去掉多餘的代碼,1.txt變成這樣:

        echo 123; var_dump(456);

進行送出,還是送出不了,如下所示:

Windows下SVN用戶端的安裝與初步使用

圖3-2 沖突送出

為什麼?因為沖突會産生上面的三個檔案,有上面3個檔案存在肯定送出不了,這三個檔案代碼及解釋如下:

1.txt.mine 是沖突前自己的檔案。可以看下内容如下:

        echo 123; var_dump(456);

1.txt.r4 是沖突前本地的版本檔案内容如下:

        echo 123; 

1.txt.r5 是别人趕在你之前送出的版本。

        其中,<<<<<<<<.mine .....=======之間的代碼是你自己的,而======......>>>>>>>.r5是别人與你沖突的代碼部分,這樣就不難了解為什麼會産生沖突這種奇怪的東西了,因為你們修改的同一塊代碼,當然會産生沖突。

假如我現在的1.txt中的沖突内容如下:

      <<<<<<< .mine

       zhihua_wei,wei_zhihua

       =======

      wei_zhihua,zhihua_wei

      >>>>>>> .r16

       前面說過  <<<<<<< .mine …… ======= ……之間的代碼是我未産生沖突之前修改的代碼 ======= ………>>>>>>> .r16,這中間……的代碼是别人與我沖突代碼的部分。

Ⅰ 使用revert(復原)操作,該操作表示使用者放棄自己的更新代碼,然後直接送出,這個時候你的代碼就會使伺服器上最新的代碼,即A使用者送出的新代碼,你的代碼不會被送出,如下圖示:

Windows下SVN用戶端的安裝與初步使用
圖3-3 復原
Windows下SVN用戶端的安裝與初步使用

圖3-4 點選ok

       點選ok按鈕後 可以看到其他三個檔案都自動删掉了,1.txt代碼正常,也就是a使用者送出的代碼,自己更新的代碼需要自己動手複制進去即可送出commit。

Ⅱ 第二種解決方法如下:

        選擇檔案->右鍵Editconficts:這種方法需要沖突雙方經過協商之後将代碼更改統一之後再送出。不僅解決了沖突而且還保證了代碼是正确的,因為隻有一方的代碼被送出。

Windows下SVN用戶端的安裝與初步使用

圖3-5 沖突解決

        如上圖所示,紅色的部分是沖突代碼:theirs表示目前伺服器端最新的代碼,Mine表示自己修改後的代碼,Merged表示合并後的代碼。點選紅色後右鍵選擇:use this text block就可以将該部分代碼作為合并後的代碼。接下來再說說由于沖突導緻重要代碼被覆寫的情況。沖突發生時如果采取的措施不對可能會導緻部分代碼丢失,如果想要還原之前的代碼也很容易。選擇檔案->右鍵選擇show log在這裡面你可以看見之前送出的所有版本,找到你想要恢複的版本右鍵選擇revert to this version 就可以恢複了。