[No000091]SVN學習筆記2-TortoiseSVN Client初級操作update(獲取)、commit(提交)


SVN簡介:

 為什么要使用SVN

      程序員在編寫程序的過程中,每個程序員都會生成很多不同的版本,這就需要程序員有效的管理代碼,在需要的時候可以迅速,准確取出相應的版本。

Subversion是什么?

   它是一個自由/開源的版本控制系統,一組文件存放在中心版本庫,記錄每一次文件和目錄的修改,Subversion允許把數據恢復到早期版本,或是檢查數據修改的歷史,Subversion可以通過網絡訪問它的版本庫,從而使用戶在不同的電腦上進行操作。

一:SVN服務器搭建和使用。

二:客戶端SVN基本使用。

詳見: http://www.cnblogs.com/Chary/p/No000081.html

三:TortoiseSVN Client基礎操作:

1)高級狀態圖標

1. 如果在提交的過程中出現了沖突,圖標就會變成了黃色感嘆號。此時要通過Merge..合並並Resolve..解除沖突。

       

2. 加號告訴你有一個文件或者目錄已經被計划加入到版本控制中。但是還未提交

    

2Client常用操作

1.SVN檢出(SVN Checkout)

             在文件夾或者目錄下單擊右鍵 –> 選擇SVN檢出,如下圖所示

             

          點擊后,在彈開窗口的版本庫url框中輸入版本庫的目錄地址,然后點擊確定,如下圖

 

再點擊ok按鈕后,如下圖:

在彈出的對話框中輸入用戶名和密碼,驗證成功后,項目文件開始從遠程服務器下載到本地工作目錄中。

點擊ok按鈕后,即可獲取完成。

2. 增加(Add)

      test項目文件下,新建一個b.txt文件,提交到版本庫的方法如下2種:

       1. 先提到變更列表中,再commit到配置庫中,選擇新增文件,右鍵SVN菜單執行"Add"操作提交到"變更列表中",然后右鍵SVN菜單執行"SVN Commit"提交到版本庫中。

       2. 不提交到變更列表中,而是直接commit配置庫中,選擇該文件,右鍵svn菜單執行"SVN Commit"操作。

2.1注意,commit(提交)時可以添加message(備注)

3. 刪除(Delete)     

1.如果被刪除的文件還未入版本庫,則可以直接使用操作系統的刪除操作刪除該文件。

         2.如果被刪除的文件已入版本庫,則刪除的方法如下:

2.1選擇被刪除文件,右鍵svn菜單執行"delete"操作,然后選擇被刪除文件的父目錄,右鍵svn菜單執行"SVN Commit".

2.2使用操作系統的刪除操作刪除該文件,然后選擇被刪除文件的父目錄,右鍵svn菜單執行"SVN Commit",在變更列表中選擇被刪除的文件。如下圖:

 

4. 改名(Rename)

    修改文件名,選中需要重命名的文件或文件夾,然后右鍵"TortoiseSVN->Rename",在彈出的對話框中輸入新名稱,點擊"ok"按鈕,並將修改文件名后的文件或文件夾通過 "SVN Commit"提交到SVN服務器上。

5. SVN還原(SVN Revert)

    右擊想要回退的文件或者文件夾,在TortoiseSVN彈出菜單中選擇"Update to reversion…" 然后會彈出一個窗口,如下:

  

比如說我們要回退到第10個版本只需要在Revision中填寫相應的版本號,然后點擊ok即可(或者在HEAD revision中點擊Show log查看相應版本)。

版本號的查看:

TortoiseSVN->Show log

 6.  檢查更新(Check for modifications)

     此功能可以顯示你所做的修改有哪些還沒有提交的,此功能不光能看到對文件的修改變化,所有的變化都能看到,包括增加文件或者目錄,刪除文件或者目錄,移動文件或者目錄等,如果你點擊了檢查版本庫,那你還可以看到版本庫里的改動,既別人提交了哪些文件的改動,你還沒更新到本地,如下:

  

雙擊默認打開后,即可查看,修改,merge(合並)

 7.  SVN更新(SVN Update)

更新本地代碼與SVN服務器上最新的版本一致,只要在需要更新的文件夾上點擊右鍵或者在文件下空白處點擊右鍵,選擇"SVN Update" (獲取指定版本中的內容,點擊右鍵執行SVN菜單中的"Update to reversion"),就可以了。

在該文件夾上右鍵或者在該文件夾內空白處右鍵即可。

同步到某個版本,使用參照6

 7.1 如何解決沖突文件

     對於每個沖突的文件Subversion在你的目錄下放置了三個文件:如下:

   

     為什么會產生沖突代碼呢?原因很簡單就是因為不同的人,同時修改了同一個文件的同一個地方,這時候,他提交了,我沒有提交,我就提交不了,這個時候我們要進行先更新,然后在進行提交即可,那如果產生沖突,會生成如上3個文件。 

解決方案如下

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

        <<<<<<< .mine

        aaaasdf11222333 dderderder

        =======

       b>>>>>>> .r5

      然后我去掉多余的代碼,1.txt變成這樣

      aaaasdf11222333 dderderder

      進行提交,還是提交不了,如下所示:

    

  為什么?因為沖突會產生上面的三個文件,有上面3個文件存在肯定提交不了,這三個文件代碼及解釋如下:

1.txt.mine 是沖突前自己的文件。可以看下內容如下:

      aaaasdf11222333 dderderder

1.txt.r4 是沖突前本地的版本文件

     內容如下:aaaasdf11222333

1.txt.r5  是別人趕在你之前提交的版本

      內容如下: b

其中,<<<<<<<<.mine .....=======之間的代碼是你自己的,而======......>>>>>>>.r5是別人與你沖突的代碼部分

這樣就不難理解為什么會產生沖突這種奇怪的東西了,因為你們修改的同一塊代碼,當然會產生沖突。

解決方案如下:

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

          <<<<<<< .mine

           6666666666666600000

           =======

          66666666666aaaaaaaaaa666

          >>>>>>> .r16
       
    前面說過  <<<<<<< .mine …… =======

        ……之間的代碼是我未產生沖突之前修改的代碼,

        ======= ………>>>>>>> .r16 這中間……的代碼是別人與我沖突代碼的部分,從上面的代碼可以看到 aaaaaaaaa是我同事新增的 ,00000是我后增加的。

  2. 使用revert(回滾)操作,該操作表示用戶放棄自己的更新代碼,然后直接提交,這個時候你的代碼就會使用服務器上最新的代碼,即A用戶提交的新代碼你的代碼不會被提交,如下所示:

    1. 點擊ok按鈕后可以看到其他三個文件都自動刪掉了,1.txt代碼變成如下代碼:

    66666666666aaaaaaaaaa666

    也就是a用戶提交的代碼,我自己更新的代碼需要自己動手復制進去即可提交commit

  3. 假如我現在3.txt產生沖突代碼如下:

    <<<<<<< .mine

    333333338888888888888=======

    3333cccccccccc3333>>>>>>> .r16

    通過第一點我們知道,333333338888888888888這個內容是我修改后,未產生沖突之前的內容,3333cccccccccc3333這個代碼是A用戶提交的代碼,從上面得知 A用戶新增內容是ccccccc,而我新增的內容是8888888

    那么第二種解決方法如下:

                        選擇文件->右鍵Editconficts:這種方法需要沖突雙方經過協商之后將代碼更改統一之后再提交。不僅解決了沖突而且還保證了代碼是正確的,因為只有一方的代碼被提交.

         

       如上圖所示,紅色的部分是沖突代碼:theirs表示當前服務器端最新的代碼,Mine表示自己修改后的代碼,Merged表示合並后的代碼。點擊紅色后右鍵選擇:use this text block就可以將該部分代碼作為合並后的代碼

    7.2接下來再說說由於沖突導致重要代碼被覆蓋的情況。沖突發生時如果采取的措施不對可能會導致部分代碼丟失,如果想要還原之前的代碼也很容易。

    選擇文件->右鍵選擇show log在這里面你可以看見之前提交的所有版本,找到你想要恢復的版本右鍵選擇revert to this version 就可以恢復了.

    7.3 SVN提交(SVN Commit)

        Svn的提交是將在工作空間做的修改進行提交,包括文件內容的修改,文件或目錄的添加,刪除,命名,移動等操作。如下圖所示:

       

    7.4 SVN忽略(對已經添加版本控制的文件,忽略版本控制)

      8.   顯示日志(Show log)

           通過此功能可以查到誰,什么時候,對那個目錄下的那些文件進行了那些操作,如下圖:

      

     9.  版本庫瀏覽(Repo-browser)

         此功能是用來瀏覽需要查看的資料庫,在本地文件夾下點擊右鍵,選擇TortoiseSVN->Repo-browser,在彈出的對話框中輸入資料庫地址,再輸入用戶名和密碼,就能查看到你需要查看到版本庫的內容,在這你還能看到那些文件被誰鎖定了,如下圖:

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM