SVN--項目管理的好幫手(-)

       當我們使用版本控制的時候,我們覺得他是如此便捷好用,但是真正爲什麼要使用SVN呢?等等很多問題,先在這裏總結基本的知識點:

1.什麼是SVN ?

       SVN(Visual SVN Server) 是集中式的版本控制,svn服務器有2種運行方式:獨立服務器和藉助apache運行。對於數據存儲有兩種方式:BDB(一種事務安全型表類型)和FSFS(一種不需要數據庫的存儲系統)。因爲BDB方式在服務器中斷時,有可能鎖住數據,所以還是FSFS方式更安全一點。(DBD和FSFS是什麼樣的結構?)

      有一個簡單但不十分精確的比喻:SVN = 版本控制 + 備份服務器;我麼可以把SVN當成自己的備份服務器,它不但充當我們每次上傳到服務器上的檔案內容的保管員,也是每次代碼變更的監控者,並且自動的賦予每次的變更的一個版本。用一個圖我們可以清楚它的原理如下圖:

                                                                                                                  

2.爲什麼要使用SVN?

  • 備份工作檔案十分重要,我們永遠不知道計算機的硬盤何時會壞掉。
  • 版本控管非常重要。你無法保證手頭上最新版本永遠都是對的。
  • 團隊之間的數據同步也是非常重要的。很多時候,除了你個人外,還有其它的團隊成員也需要你的數據。
         總結:安全,效率,資源共享

3.建立SVN Repository

       基本操作:
       1)取出版本庫到一個工作拷貝:通過“Add Respository”建立一個repository ,在“URL of repository”中輸入SVN服務器地址,“Respository path”中輸入內容在服務器上的目錄路徑,通過“check out”將內容保存到本地,這樣我們就得到了一份內容的工作拷貝。       
       2
)提交(commit)在工作拷貝中作出修改並提交:在工作拷貝中隨便打開一個文件,作出修改,然後右鍵-> SVN Commit... 。這樣我們就把修改提交到了版本庫,版本庫根據情況存儲我們提交的數據。
       3)在修改過的文件上通過Show Log,可以看到對這個文件所有的提交。在不同的revision條目上右鍵-> Compare with workingcopy,我們可以比較工作拷貝的文件和所選revision版本的區別。
      
4)更新版本(Update to Latest Revision )
在文件或者文件夾右鍵Update to Latest Revision ,將該文件夾中所有文件或者該文件更新至最新版本。本地內容與服務器內容自動Merge有可能造成代碼衝突。

4.SVN權限配置

       1)在Subversion 的使用當中,存在“認證”、“授權”兩個概念。認證,即authentication,是指用戶名與密碼的認證。授權,即authorization ,是指某用戶對某個目錄是否具備讀、寫權限的一種審覈。這兩者配合作用,就組成了Subversion 的整個帳戶管理體系。       
       2)Subversion 提供了面向目錄的帳戶權限管理功能,通過它,我們就可以很精確地實現項目目錄的訪問控制。

5.衝突解決方案

     1)其實避免的衝突最好的辦法就是: 項目人在配合工作的時候,彼此之間很好的交流
     2)當出現衝突的時候,svn會生成三個臨時文件
  • filename.mine 存儲者本地的修改過的文件。
  •  filename.rOLDREV 存儲者上次update的基礎版本文件 。
  • filename.rNEWREV 存儲着客戶端剛從服務器上接收來的版本。
     3)當遇到衝突的時候有3種方法解決衝突
  • 手動合併代碼,解決衝突。
  • 選擇一個衝突出現時產生的臨時文件來覆蓋當前文件。
  • 運行svn resolved filename 命令來放棄當前文件的本地的所有修改。
6.在IDE中的使用,比如eclipse

  • 在eclipse中安裝Subclipse 的插件並做好配置。
  • 在eclipse中新建工程,建一個包以及類,並完成相關代碼的編寫和執行。
  •  新建一個svn資源庫位置,並將所建的工程import 到svn資源庫位置。過程如下:
          1.在eclipse 中打開SVN資源視圖(在eclipse的右上角),在左邊空白處右鍵創建資源庫位置,此時需要添加url,此時的位置就是我們在SVN服務器上所建倉庫的位 置(url);
          2. 回到JAVAEE的視圖,將項目import到服務器服務器上:鼠標右鍵點擊項目->Team->Share Project ,選擇svn,使用剛纔指定的svn倉庫的url。在svn視圖中,項目已經導入到倉庫中。
  • 在修改文件時,要進行各種SVN操作,比如修改後commit,提交不成功時需要update,這時成功提交併保持與版本庫一致;當我們要重新想恢復提交前的版本時,需要進行比較並選擇loacl history。不僅僅是這麼簡單的操作,還有一些列方便管理代碼的操作。有待在繼續熟練使用
7.svn 的基本命令:(在努力掌握)

     C:\Documents and Settings\Administrator>svn ?
     用法: svn <subcommand> [options] [args] Subversion 命令行客戶端,版本 1.6.6。
     使用“svn help <subcommand>” 顯示子命令的幫助信息。
     使用“svn --version”查看程序的版本號和版本庫訪問模塊,或者 使用“svn --version --quiet”只查看程序的版本號。 
     大多數的子命令可接受文件或目錄參數,對目錄進行遞歸處理。 如果沒有指定參數,默認對當前目錄(包含當前目錄)遞歸處理。
 
    可用的子命令:

   add:把文件和目錄納入版本控制,通過調度加到版本庫。它們會在下一次提交時加入。
   blame (praise, annotate, ann):輸出指定文件或URL的追溯內容,包含版本和作者信息。
   cat:輸出指定文件或URL的內容。
   changelist (cl):耦合(或解耦)文件與修改列表 CLNAME。   
   checkout (co):從版本庫簽出工作副本。
   cleanup: 遞歸清理工作副本,刪除鎖,繼續未完成操作,等等。  
   commit (ci): 把工作副本的修改提交到版本庫。
   copy (cp): 在工作副本或版本庫中複製數據,保留歷史。  
   delete (del, remove, rm): 從版本庫中刪除文件和目錄。 
   diff (di): 顯示兩個版本或路徑的差異。   
   export: 產生一個無版本控制的目錄樹副本。   
   help (?, h): 描述本程序或其子命令的用法。
   import: 將未納入版本控制的文件或目錄樹提交到版本庫。 
   info: 顯示本地或遠程條目的信息。 
   list (ls): 列出版本庫中的目錄內容。
   lock: 鎖定版本庫中的路徑,使得其他用戶不能向其提交修改。 
   log: 顯示一組版本與/或文件的提交日誌信息。   
   merge: 將兩個源差異應用至工作副本。   
   mergeinfo: 顯示合併的相關信息。   
   mkdir: 創建納入版本控制的新目錄。
   move (mv, rename, ren): 在工作副本或版本庫中移動或改名文件或目錄。   
   propdel (pdel, pd): 刪除目錄、文件或版本的屬性。   
   propedit (pedit, pe): 使用外部編輯器編輯屬性。
   propget (pget, pg): 顯示目錄、文件或版本的屬性取值。 
   proplist (plist, pl): 列出目錄、文件或版本的所有屬性。
   propset (pset, ps): 設定目錄、文件或版本的屬性。   
   resolve: 解決工作副本中目錄或文件的衝突。
   resolved: 刪除工作副本中目錄或文件的“衝突”狀態。
   revert: 將工作副本文件恢復到原始版本(恢復大部份的本地修改)。   
   status (stat, st): 顯示工作副本中目錄與文件的狀態。   
   switch (sw): 更新工作副本至不同的 URL。   
   unlock: 解除工作副本或URL的鎖定。
   update (up): 更新版本。



 

 

 

 

 

回到

JAVAEE

視圖

,

將項目

import

到服務器服務器上

:

鼠標右鍵點擊項目

->Team->Share Project 

 

選擇

SVN 

 

使用剛纔定位的倉庫

 

 

SVN

視圖裏可以看到

,

項目已經導入

 

 

先寫到這裏,下一篇將寫一些基本操作。

 

 

 

 

 

 

 

1234567890ABCDEFGHIJKLMNabcdefghijklmn!@#$%^&&*()_+.一三五七九貳肆陸扒拾,。青玉案元夕東風夜放花千樹更吹落星如雨寶馬雕車香滿路鳳簫聲動玉壺光轉一夜魚龍舞蛾兒雪柳黃金縷笑語盈盈暗香去衆裏尋他千百度暮然回首那人卻在燈火闌珊處

      

       


發佈了14 篇原創文章 · 獲贊 8 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章