SlideShare une entreprise Scribd logo
1  sur  81
專案 ( 軟體 ) 版本控管

    Using Subversion
Agenda
    架構


    使用檔案總管連線


    整合 Eclipse IDE


    Server 權限控管


    團隊開發


    專案版本規範

架構



                           Repository1

                           Repository2

PC             Subversion
(Win XP)           On
           Windows Server 2003
安裝 SubVersion

    請參閱官方網站


        http://subversion.tigris.org/
    
建立 Repository

    在 svn 目錄下建立


    專案用的資料夾
    在資料夾內如


    圖示操作
建立 Repository

    選擇 Repository 的檔案格式

使用檔案總管連線

    Client 端軟體安裝


        TortoiseSVN
    


        http://tortoisesvn.tigris.org/
    

    
Import 專案

    將需要做版本控管的檔案匯入到 Subversion


    Server
Import 專案

    目錄上點選「右鍵」,選 TortoiseSVN >


    Import
Import 專案
    URL of repository: http://server/svn/hikey


        可在 Import 寫上註解
    
Import 專案

    輸入帳號密碼進行 import

Import 專案

    成功完成 import 後,會產生第 1 個版本。

Import 專案後



                                  Hikey
工作複本



       PC             Subversion
       (Win XP)           On
                  Windows Server 2003
如何 checkout 專案 (1/4)

    在桌面點選右鍵,選擇 SVN Checkout

如何 checkout 專案 (2/4)

    輸入要 checkout 的 repository URL


    以及要 Checkout 到哪個目錄

如何 checkout 專案 (3/4)

    輸入帳號密碼

如何 checkout 專案 (4/4)

    Checkout 完成

鎖定已 checkout 的 code
    (1/3)
    避免別人 checkout 舊的程式碼。

鎖定已 checkout 的 code
(2/3)
鎖定已 checkout 的 code
(3/3)
如何 update 新版的 code
    (1/5)
    檔案經過修改之後,會呈現 「驚歎號」的


    符號
如何 update 新版的 code
    (2/5)
    在要 update 的檔案上面按右鍵選擇「 SVN


    Commit 」
如何 update 新版的 code
    (3/5)
    註記此次修改內容

如何 update 新版的 code
(4/5)
如何 update 新版的 code
    (5/5)
    commit 之後,整個 repository 就會變成


    新的版本
檢視專案的 repository (1/4)

    在 checkout 的目錄上點選 「右鍵」,如


    圖選擇。
檢視專案的 repository (2/4)

    可檢視版本的異動檔案

檢視專案的 repository (3/4)

    在檔案上面點選 Show log 可查看每個版本


    異動的資訊。
檢視專案的 repository (4/4)

                 檔案修改的歷程




                  該次修改的註記




                 此次版本異動的
                    檔案
安裝 Eclipse Plug-in
初始匯入

    將專案匯入到檔案庫


        在 SVN Server 建立檔案庫
    


        在要匯入的專案 > 右鍵 > 團隊 > 共用專案
    
初始匯入

    點選 SVN ,下一步

初始匯入

    建立新的檔案庫位置,下一步

初始匯入

    選擇在 SVN Server 建立的檔案庫位置

初始匯入

    請選擇自行指定資料夾名稱並取名為 trunk


        建立專案發展主線
    
初始匯入

    點完成,開始共用專案的建立

初始匯入

    編輯備註欄,方便以後的追蹤

初始匯入

    檢視專案的圖示,確定專案已經共用成功


        檔案的版本
    


        時間
    


        Owner
    




    匯入完成後會自動成為 Check Out 狀態

取出專案 (Check Out)

    取出自己的專案


        重新啟動 Eclipse 需手動 Check Out 專案
    


        建議養成習慣
    
取出專案 (Check Out)

    選擇種類版本控制種類

取出專案 (Check Out)

    建立連線

取出他人專案 (Check Out)

    協助修改他人專案


        使用 SVN 檔案庫瀏覽器
    


        視窗 > 顯示視圖 > 其他
    
使用 SVN 檔案庫瀏覽器

    建立檔案庫的連線

使用 SVN 檔案庫瀏覽器

    填入檔案庫的位置

使用 SVN 檔案庫瀏覽器

    檢視檔案庫的內容

取出他人專案 (Check Out)

    在 SVN 檔案庫瀏覽器的 trunk 右鍵 > 取出


    為
取出他人專案 (Check Out)

    將會建立一個新的專案


        填入專案名稱並選擇版本
    
取出他人專案 (Check Out)

    選擇取出的檔案放置路徑

取出他人專案 (Check Out)

    檢視取出的專案

共用專案狀態圖 (Mode 1)

    團隊同時修改一個專案





                            Project / trunk
     SVN Server




              Subclipse                         Subclipse

                  Eclipse                        Eclipse
工作複本                                                            工作複本

           Main Coder                         Assistant Coder
合併協助者的程式

    Main Coder 合併 Assistant Coder 的修改


    合併方式


        直接合併
    


        新舊版本比較後合併
    


    合併種類


        Assistant 異動合併
    


        Assistant 新增合併
    
合併協助者的程式

    Assistant 異動並送交檔案


        異動
    
合併協助者的程式

    Assistant 異動並送交檔案


        送交
    
合併協助者的程式

    Assistant 版本的變動


        SVN Server 的 Project / trunk 已經有最新版本
    


        此版本由協助者建立
    


        Main Coder 的版本已經 Out-Of-Date
    
合併協助者的程式

    Main Coder 進行合併


        工作複本已經過期
    


    此合併是將檔案庫的新版本合併到工作複本


        維持 Main Coder 有最新的程式版本
    
合併協助者的程式 - 直接合併

    在需要合併的檔案右鍵 > 團隊 > 合併


    確認路徑

合併協助者的程式 - 直接合併

    使用顯示記錄來決定合併的版本

合併協助者的程式 - 直接合併

    將會自動帶出所需更新的版本

合併協助者的程式 - 直接合併

    Main Coder 的檔案會有異動


        確認異動內容
    


        執行更新或復原
    

            因工作複本已經
        


            過期,所以不能
            使用送交
合併協助者的程式 - 差異合併

    在要合併的檔案右鍵 > 取代為 > 修訂版


    本
        使用比較取代的功能來異動檔案,可解決衝突
    


        異動後執行更新或復原
    
合併協助者的程式

    維持 Assistant 的 Code 與 Main Coder 同步


        由 Assistant 執行合併
    


    合併時機與版本


        Main Coder 通常是專案開發負責人
    


        由 Main Coder 決定週期
    


    專案輸出版本


        由 Main Coder 輸出
    


        由 Main Coder 定義版本次號
    
共用專案狀態圖 (Mode 2)

    使用分支




                           Project / trunk                 Project / branches
    SVN Server




             Subclipse                         Subclipse

                 Eclipse                        Eclipse
工作複本                                                              工作複本

          Main Coder                         Assistant Coder
團隊開發 - 分支作業

    由發展主線 (trunk) 建立複本 (branches)


        部分新功能或異動功能由 branches 負責
    


        避免同時異動 ( 誤刪、誤改 )trunk 而造成版本
    

        不穩定
        branches 修改後再 merge 回 trunk
    
建立分支

    使用 SVN 檔案庫瀏覽器建立資料夾

建立分支

    填入資料夾名稱 branches

建立分支

    填入註記,點選完成

建立分支

    在 SVN 檔案庫瀏覽器可看到新的資料夾


        僅是個資料夾
    


        資料夾的意義是我們賦予的
    


        用來作為分支的管理
    
建立分支

    在 trunk 的專案右鍵 > 團隊 > 分支 / 標


    記
建立分支

    點瀏覽來設定目標 URL

建立分支

    選擇 branches

建立分支

    將目標 URL 附加上功能名稱,如 :


    /branches/member_function ,方便辨識
建立分支

    在 SVN 檔案庫瀏覽器將會看到新的分支


        建立好分支後就可以如同
    

        前面所述,由 Assistant
        Coder 進行功能開發
        Assistant Coder 的送交將
    

        不會影響到 Main Coder
取出分支 (check out branch)

    如同一般的 Check Out

取出分支 (check out branch)

    Check Out 後的專案將類似圖示


        分支的異動將存在於分支的檔案庫裡
    
合併分支

         Main Coder 應定期將 branches 的修改合


         併回 trunk ,以防止 branches 的修改遠離
         trunk
         合併分支的過程


          將 trunk 的檔案庫與 branches 的檔案庫合併後
    1.

          存到 trunk 的工作複本
          trunk 的工作複本確認過異動項目後進行送交或
    2.

          是復原
合併分支的過程


                          Project / trunk       Project / branches
   SVN Server

                                 1
                     3
                                            1
                                                         Subclipse
            Subclipse
       2
                                                           Eclipse
                Eclipse
工作複本
                                                Assistant Coder
                 Main Coder
                                                           工作複本
合併分支

    團隊 > 合併


        目標路徑選擇 branches 裡的目標,並且選擇要
    

        合併的版本
合併分支

    亦可使用比較的方式來進行合併


        比較 > 分支 / 標記
    
合併分支

    填入比較對象就可以將差異部分顯示並決定


    要合併的差異點
專案版本規範

    開發階段 (development)


        Trunk
    


        Branches
    


        由 subversion 控管
    


    上線階段 (production)


        Tags
    


        放置於特定的 folder
    
專案版本規範

    版本規範


        三個數字
    


        專案整體性異動 . 功能新增異動 . 功能修正
    

        Ex:
    

            __tags
        

             |__1.2.21
                 |__file1.jsp
                 |__file2.jsp
             |__1.2.22
                 |__file1.jsp
                 |__file2.jsp

Contenu connexe

Tendances

CRE-013-個人知識管理達人
CRE-013-個人知識管理達人CRE-013-個人知識管理達人
CRE-013-個人知識管理達人handbook
 
入門啟示錄Ch06簡報
入門啟示錄Ch06簡報入門啟示錄Ch06簡報
入門啟示錄Ch06簡報Chiou WeiHao
 
Y450 User Guide V1.0 Sc 147002238
Y450 User Guide V1.0 Sc 147002238Y450 User Guide V1.0 Sc 147002238
Y450 User Guide V1.0 Sc 147002238zcejzr
 
第4章 作業系統 (Update)
第4章 作業系統 (Update)第4章 作業系統 (Update)
第4章 作業系統 (Update)Seng Chi Ao
 
DS-012-產品設計與製程選擇
DS-012-產品設計與製程選擇DS-012-產品設計與製程選擇
DS-012-產品設計與製程選擇handbook
 
第11章 電子商務
第11章 電子商務第11章 電子商務
第11章 電子商務Seng Chi Ao
 
Web技術勉強会11回目
Web技術勉強会11回目Web技術勉強会11回目
Web技術勉強会11回目龍一 田中
 
毕业设计-Slide
毕业设计-Slide毕业设计-Slide
毕业设计-Slidefulin tang
 
岑文初:淘宝开放平台架构设计与实践
岑文初:淘宝开放平台架构设计与实践岑文初:淘宝开放平台架构设计与实践
岑文初:淘宝开放平台架构设计与实践XMourinho
 
PMT-005-生產作業管理 製程選擇與設施佈置
PMT-005-生產作業管理 製程選擇與設施佈置PMT-005-生產作業管理 製程選擇與設施佈置
PMT-005-生產作業管理 製程選擇與設施佈置handbook
 
PMT-003-生產作業管理作業管理導論
PMT-003-生產作業管理作業管理導論PMT-003-生產作業管理作業管理導論
PMT-003-生產作業管理作業管理導論handbook
 
Cn En101 Language Learning (Simplified Chinese)
Cn En101 Language Learning (Simplified Chinese)Cn En101 Language Learning (Simplified Chinese)
Cn En101 Language Learning (Simplified Chinese)Robert Zhuang
 
知識管理期末報告
知識管理期末報告知識管理期末報告
知識管理期末報告guestabb317
 
社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫
社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫
社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫stps stps
 
PMT-008-生產管理簡介
PMT-008-生產管理簡介PMT-008-生產管理簡介
PMT-008-生產管理簡介handbook
 
Ds 036 標準與專利檢索
Ds 036 標準與專利檢索Ds 036 標準與專利檢索
Ds 036 標準與專利檢索handbook
 
心肺復甦術
心肺復甦術 心肺復甦術
心肺復甦術 5045033
 
iReport實做練習part(1)
iReport實做練習part(1) iReport實做練習part(1)
iReport實做練習part(1) seatof
 

Tendances (20)

CRE-013-個人知識管理達人
CRE-013-個人知識管理達人CRE-013-個人知識管理達人
CRE-013-個人知識管理達人
 
入門啟示錄Ch06簡報
入門啟示錄Ch06簡報入門啟示錄Ch06簡報
入門啟示錄Ch06簡報
 
Y450 User Guide V1.0 Sc 147002238
Y450 User Guide V1.0 Sc 147002238Y450 User Guide V1.0 Sc 147002238
Y450 User Guide V1.0 Sc 147002238
 
第4章 作業系統 (Update)
第4章 作業系統 (Update)第4章 作業系統 (Update)
第4章 作業系統 (Update)
 
Frbifri
FrbifriFrbifri
Frbifri
 
DS-012-產品設計與製程選擇
DS-012-產品設計與製程選擇DS-012-產品設計與製程選擇
DS-012-產品設計與製程選擇
 
第11章 電子商務
第11章 電子商務第11章 電子商務
第11章 電子商務
 
Web技術勉強会11回目
Web技術勉強会11回目Web技術勉強会11回目
Web技術勉強会11回目
 
毕业设计-Slide
毕业设计-Slide毕业设计-Slide
毕业设计-Slide
 
岑文初:淘宝开放平台架构设计与实践
岑文初:淘宝开放平台架构设计与实践岑文初:淘宝开放平台架构设计与实践
岑文初:淘宝开放平台架构设计与实践
 
PMT-005-生產作業管理 製程選擇與設施佈置
PMT-005-生產作業管理 製程選擇與設施佈置PMT-005-生產作業管理 製程選擇與設施佈置
PMT-005-生產作業管理 製程選擇與設施佈置
 
15.淺談Super G
15.淺談Super G15.淺談Super G
15.淺談Super G
 
PMT-003-生產作業管理作業管理導論
PMT-003-生產作業管理作業管理導論PMT-003-生產作業管理作業管理導論
PMT-003-生產作業管理作業管理導論
 
Cn En101 Language Learning (Simplified Chinese)
Cn En101 Language Learning (Simplified Chinese)Cn En101 Language Learning (Simplified Chinese)
Cn En101 Language Learning (Simplified Chinese)
 
知識管理期末報告
知識管理期末報告知識管理期末報告
知識管理期末報告
 
社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫
社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫
社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫
 
PMT-008-生產管理簡介
PMT-008-生產管理簡介PMT-008-生產管理簡介
PMT-008-生產管理簡介
 
Ds 036 標準與專利檢索
Ds 036 標準與專利檢索Ds 036 標準與專利檢索
Ds 036 標準與專利檢索
 
心肺復甦術
心肺復甦術 心肺復甦術
心肺復甦術
 
iReport實做練習part(1)
iReport實做練習part(1) iReport實做練習part(1)
iReport實做練習part(1)
 

En vedette

Venture-Backed M&A's Q2 '05
  	Venture-Backed M&A's Q2 '05   	Venture-Backed M&A's Q2 '05
Venture-Backed M&A's Q2 '05 mensa25
 
Venture Capital Fundraising Q3 ‘04
Venture Capital Fundraising Q3 ‘04Venture Capital Fundraising Q3 ‘04
Venture Capital Fundraising Q3 ‘04mensa25
 
Managing Your Brand Andy Beal
Managing Your Brand   Andy BealManaging Your Brand   Andy Beal
Managing Your Brand Andy BealAffiliate Summit
 
Venture-backed IPO & Acquisitions Q4 05
Venture-backed IPO & Acquisitions Q4 05 Venture-backed IPO & Acquisitions Q4 05
Venture-backed IPO & Acquisitions Q4 05 mensa25
 
Palin Mask
Palin MaskPalin Mask
Palin Maskmensa25
 
2008年11月全国汽车销售情况分析报告
2008年11月全国汽车销售情况分析报告2008年11月全国汽车销售情况分析报告
2008年11月全国汽车销售情况分析报告BeastTL
 

En vedette (7)

referentieprojecten
referentieprojectenreferentieprojecten
referentieprojecten
 
Venture-Backed M&A's Q2 '05
  	Venture-Backed M&A's Q2 '05   	Venture-Backed M&A's Q2 '05
Venture-Backed M&A's Q2 '05
 
Venture Capital Fundraising Q3 ‘04
Venture Capital Fundraising Q3 ‘04Venture Capital Fundraising Q3 ‘04
Venture Capital Fundraising Q3 ‘04
 
Managing Your Brand Andy Beal
Managing Your Brand   Andy BealManaging Your Brand   Andy Beal
Managing Your Brand Andy Beal
 
Venture-backed IPO & Acquisitions Q4 05
Venture-backed IPO & Acquisitions Q4 05 Venture-backed IPO & Acquisitions Q4 05
Venture-backed IPO & Acquisitions Q4 05
 
Palin Mask
Palin MaskPalin Mask
Palin Mask
 
2008年11月全国汽车销售情况分析报告
2008年11月全国汽车销售情况分析报告2008年11月全国汽车销售情况分析报告
2008年11月全国汽车销售情况分析报告
 

專案(軟體)版本控管