![SVN和Tortoise基礎(chǔ)培訓(xùn).ppt_第1頁](http://file.renrendoc.com/FileRoot1/2019-5/27/7685bfcd-d51b-49bf-b8b7-48d42d4f74fe/7685bfcd-d51b-49bf-b8b7-48d42d4f74fe1.gif)
![SVN和Tortoise基礎(chǔ)培訓(xùn).ppt_第2頁](http://file.renrendoc.com/FileRoot1/2019-5/27/7685bfcd-d51b-49bf-b8b7-48d42d4f74fe/7685bfcd-d51b-49bf-b8b7-48d42d4f74fe2.gif)
![SVN和Tortoise基礎(chǔ)培訓(xùn).ppt_第3頁](http://file.renrendoc.com/FileRoot1/2019-5/27/7685bfcd-d51b-49bf-b8b7-48d42d4f74fe/7685bfcd-d51b-49bf-b8b7-48d42d4f74fe3.gif)
![SVN和Tortoise基礎(chǔ)培訓(xùn).ppt_第4頁](http://file.renrendoc.com/FileRoot1/2019-5/27/7685bfcd-d51b-49bf-b8b7-48d42d4f74fe/7685bfcd-d51b-49bf-b8b7-48d42d4f74fe4.gif)
![SVN和Tortoise基礎(chǔ)培訓(xùn).ppt_第5頁](http://file.renrendoc.com/FileRoot1/2019-5/27/7685bfcd-d51b-49bf-b8b7-48d42d4f74fe/7685bfcd-d51b-49bf-b8b7-48d42d4f74fe5.gif)
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
SVN版本管理初級培訓(xùn) 目錄 SVN的基本概念在TortoiseSVN中使用的SVN在Eclipse中使用SVN分支和標(biāo)簽 為什么要進(jìn)行版本控制 是否發(fā)生過這樣的情況 當(dāng)你在修改一個(gè)文件時(shí) 其他人也在修改這個(gè)文件 而你是否因此丟失過自己所作的修改呢 是否曾經(jīng)保存完一個(gè)修改 然后又想把個(gè)文件恢復(fù)到修改以前的狀態(tài) 是否曾經(jīng)希望能夠看到一個(gè)文件以前某個(gè)時(shí)間點(diǎn)的狀態(tài) 是否曾經(jīng)在項(xiàng)目中發(fā)現(xiàn)了一個(gè)BUG 然后想調(diào)查它是什么時(shí)候產(chǎn)生的 你是否在一個(gè)團(tuán)隊(duì)中工作 如果這些問題中的任何一個(gè)回答 是 的話那么你肯定需要考慮版本控制請集中精力繼續(xù)后續(xù)的培訓(xùn) Subversion相關(guān)軟件 基于Subversion和TortoiseSVN的版本控制系統(tǒng)Subversion 是一個(gè)開源的版本控制系統(tǒng) 擁有CVS的大部分特征 并在CVS的基礎(chǔ)上有更強(qiáng)的擴(kuò)展 用來代替CVS系統(tǒng) TortoiseSVN SVN的客戶端工具 和資源管理器完美集成 基于TortoiseCVS的代碼開發(fā) 使用上和TortoiseCVS極為相似 Web瀏覽器目前公司的版本庫基于Apache服務(wù)器運(yùn)行 可在瀏覽器中查看授權(quán)過的版本庫的信息 使用SVN之前需要了解的第一個(gè)概念 版本庫 Repository SVN的核心是版本庫 儲存所有的數(shù)據(jù) 版本庫按照文件樹形式儲存數(shù)據(jù) 包括文件和目錄 任意數(shù)量的客戶端可以連接到版本庫 讀寫這些文件 通過寫數(shù)據(jù) 別人可以看到這些信息 通過讀數(shù)據(jù) 可以看到別人的修改 最特別的是Subversion會記錄版本庫中的每一次更改 不僅針對文件也包括目錄本身 包括增加 刪除和重新組織文件和目錄 使用SVN之前需要了解第二個(gè)概念 版本模型鎖定 修改 解鎖方案復(fù)制 修改 合并方案 在這種模型里 每一個(gè)客戶讀取項(xiàng)目版本庫建立一個(gè)私有工作副本 版本庫中文件和目錄的本地映射 用戶并行工作 修改各自的工作副本 最終 各個(gè)私有的復(fù)制合并在一起 成為最終的版本 這種系統(tǒng)通常可以輔助合并操作 但是最終要靠人工去確定正誤 Subversion怎么做 Subversion缺省使用復(fù)制 修改 合并模型 大多數(shù)情況下可以滿足你的需求 然而 Subversion1 2后還是支持鎖定 如果你有不可合并的文件 或者你只是想實(shí)行強(qiáng)制管理策略 Subversion仍然會提供你需要的特性 SVN的部署 安裝和配置 公司的版本庫情況介紹基于Apache運(yùn)行各部門建立各自的版本管理服務(wù)器質(zhì)量管理部統(tǒng)一進(jìn)行公司層面 部門層面和項(xiàng)目層面的版本管理服務(wù)端的安裝配置 略TortoiseSVN的安裝如何獲取安裝文件 從下載從公司版本庫中獲取 默認(rèn)安裝安裝后與windows資源管理器完美集成 在服務(wù)器端創(chuàng)建版本庫 操作執(zhí)行人員 配置管理員操作步驟 在要?jiǎng)?chuàng)建文件倉庫的位置 配置管理服務(wù)器中 創(chuàng)建目錄 在目錄中創(chuàng)建版本庫 命令行方式 svnadmincreateD SVNStore使用TortoiseSVN 資源管理器的右鍵菜單 TortoiseSVN 在此創(chuàng)建版本庫 版本庫結(jié)構(gòu) 操作執(zhí)行人員 配置管理員Subversion的版本庫在你的硬盤上創(chuàng)建一個(gè)空的文件夾在那個(gè)文件夾下創(chuàng)建你想要的頂級目錄 千萬不要放任何文件進(jìn)去 暫時(shí)不明白為什么 通過在那個(gè)文件夾右鍵 選擇TortoiseSVN 導(dǎo)入 將這個(gè)結(jié)構(gòu)導(dǎo)入到版本庫中 這將導(dǎo)入臨時(shí)文件夾到版本庫的根目錄形成一個(gè)基本的版本庫布局 Subversion的版本庫布局中 推薦建立 trunk tags branches三個(gè)目錄 他們不是必須的 但其設(shè)置貼合SVN功能 在使用中你將會發(fā)現(xiàn)這樣設(shè)置的好處 Trunk 最新的代碼 相當(dāng)于CVS中的Head版本 Tags Subversion使用過程中創(chuàng)建的標(biāo)簽 Branches 保存Subversion的工作分支 TortoiseSVN使用 訪問版本庫 訪問方法 Subversion可以通過多種方式訪問 本地磁盤訪問 或各種各樣不同的網(wǎng)絡(luò)協(xié)議 但一個(gè)版本庫地址永遠(yuǎn)都是一個(gè)URL URL方案反映了訪問方法 TortoiseSVN使用 checkout 工作副本 的概念一個(gè)Subversion工作副本是你本地機(jī)器一個(gè)普通的目錄 保存著一些文件 你可以任意的編輯文件 而且如果是源代碼文件 你可以像平常一樣編譯 你的工作副本是你的私有工作區(qū) 在你明確的做了特定操作之前 Subversion不會把你的修改與其他人的合并 也不會把你的修改展示給別人 工作副本的結(jié)構(gòu)普通的文件目錄 svn文件夾 管理目錄 這個(gè)目錄里的文件能夠幫助Subversion識別哪一個(gè)文件做過修改 哪一個(gè)文件相對于別人的工作已經(jīng)過期了 TortoiseSVN使用 識別重載圖標(biāo) 一個(gè)新檢出的工作副本使用綠色的對勾做重載 表示Subversion狀態(tài)正常 在你開始編輯一個(gè)文件后 狀態(tài)就變成了已修改 而圖標(biāo)重載變成了紅色感嘆號 通過這種方式 你可以很容易地看出哪些文件從你上次更新工作副本后被修改過 需要被提交 如果在更新的過程中出現(xiàn)了沖突 圖標(biāo)會變成黃色感嘆號 如果你給一個(gè)文件設(shè)置了svn needs lock屬性 Subversion會讓此文件只讀 直到你獲得文件鎖 具有這個(gè)重載圖標(biāo)的文件來表示你必須在編輯之前先得到鎖 如果你擁有了一個(gè)文件的鎖 并且Subversion狀態(tài)是正常 這個(gè)重載圖標(biāo)就提醒你如果不使用該文件的話應(yīng)該釋放鎖 允許別人提交對該文件的修改 這個(gè)圖標(biāo)表示當(dāng)前文件夾下的某些文件或文件夾已經(jīng)被調(diào)度從版本控制中刪除 或是該文件夾下某個(gè)受版本控制的文件丟失了 加號告訴你有一個(gè)文件或目錄已經(jīng)被調(diào)度加入版本控制 TortoiseSVN add 功能 將客戶端新建的文件添加到文件庫中 使其接受SVN的控制 操作 在資源管理器中打開取出到本地的工作復(fù)本 選中要添加的文件 點(diǎn)擊鼠標(biāo)右鍵 在彈出菜單中選擇 SVN添加 在彈出窗口中選擇要添加的文件 點(diǎn)擊OK 完成添加操作 TortoiseSVN commit 將你對工作副本的修改發(fā)送給版本庫 稱為提交修改 提交之前要確保你的工作副本是最新的 可以直接使用TortoiseSVN 更新 或者你可以先使用TortoiseSVN 檢查修改 看看哪些文件在本地或是服務(wù)器上已經(jīng)有了改動(dòng) 提交文件與提交文件夾的區(qū)別當(dāng)你提交文件時(shí) 提交對話框只顯示你選擇提交的文件 當(dāng)你提交文件夾 提交對話框?qū)⒆詣?dòng)選擇該文件夾中有改動(dòng)的所有文件 如果你忘記你建立了一個(gè)新文件 提交文件夾將使你可以找到它 TortoiseSVN delete Delete commit找回已刪除的文件或目錄刪除了文件或目錄并已經(jīng)提交該刪除操作到版本庫 那么一個(gè)常規(guī)的TortoiseSVN Revert已不能再將其找回 使用日志對話框來查找出來刪除的版本和文件 打開數(shù)據(jù)倉庫的瀏覽器 并選擇該版本 選擇刪除的文件或目錄 右鍵并選擇ContextMenu Copytoworkingcopy 然后選擇你的工作副本的路徑 重載加號標(biāo)志表明這個(gè)項(xiàng)目不僅僅是增加 而且還包含了歷史 Subversion記住了它是從哪個(gè)拷貝過來的 對這個(gè)文件運(yùn)行svnlog會看到這個(gè)文件之前的歷史 換句話說 該文件不是新的 而是原先刪除的那一個(gè)文件的后代 TortoiseSVN update 獲取其他用戶對文件進(jìn)行的修改 與自己對文件進(jìn)行的修改進(jìn)行合并 保證本地的文件總是最新的 說明 在團(tuán)隊(duì)開發(fā)時(shí) 更新保持團(tuán)隊(duì)成員之間的工作內(nèi)容一致 是一件很重要的工作 要注意經(jīng)常更新自己的工作復(fù)本 以保證自己能夠獲得最新的修改內(nèi)容 TortoiseSVN rename 對文件 目錄進(jìn)行Subversion控制下的改名操作 用此功能對文件 目錄進(jìn)行改名后文件仍處于SVN的控制下并保持連續(xù)的變更信息 注意 必須使用TortoiseSVN的重命名功能 直接在資源管理器中進(jìn)行重命名SVN無法監(jiān)控 TortoiseSVN Revert 撤銷本地所有未提交的修改 TortoiseSVN 出現(xiàn)沖突 commit時(shí)出現(xiàn) Youhavetoupdateyourworkcopyfirst 紅色警告 說明版本庫中的此文件已經(jīng)被其他人修改了 點(diǎn) ok 按鈕退出 執(zhí)行update然后commit如果修改與update得到的代碼不沖突 則自動(dòng)合并 TortoiseSVN 出現(xiàn)沖突 如果update出現(xiàn) Oneormorefilesareinaconflictedstate 紅色警告 說明出現(xiàn)沖突 SVN自動(dòng)產(chǎn)生幾個(gè)文件記錄沖突 filename mine 你更新前的文件 沒有沖突標(biāo)志 只是你最新更改的內(nèi)容 如果這個(gè)文件不可以合并 mine文件不會創(chuàng)建 因?yàn)樗凸ぷ魑募嗤?filename rOLDREV 這個(gè)是你做更新操作以前的BASE版本 就是你在上次更新之后未作更改的版本 filename rNEWREV 這是Subversion從服務(wù)器剛剛收到的版本 這個(gè)版本就是版本庫的HEAD版本 TortoiseSVN 出現(xiàn)沖突 手工解決沖突選擇沖突文件 Editconficts 出現(xiàn)merge界面 分為 Theirs Mine 和 Merged 3部分 表示 別人修改的內(nèi)容 我修改的內(nèi)容 和 合并后的結(jié)果 3部分 目標(biāo)是將 別人修改的內(nèi)容 和 我修改的內(nèi)容 有取舍地合并起來 形成 合并后的結(jié)果 合并一般分為4種情況 保留 我的修改 舍棄 別人的修改 鼠標(biāo)右鍵點(diǎn)擊Mine框的相應(yīng)行 點(diǎn)擊 Usethistextblock 舍棄 我的修改 保留 別人的修改 鼠標(biāo)右鍵點(diǎn)擊Theirs框的相應(yīng)行 點(diǎn)擊 Usethistextblock 同時(shí)保留 我的修改 和 別人的修改 并將 我的修改 放在前面 鼠標(biāo)右鍵點(diǎn)擊Mine框的相應(yīng)行 點(diǎn)擊 Usetextblockfromminebeforetheirs 同時(shí)保留 我的修改 和 別人的修改 并將 別人的修改 放在前面 鼠標(biāo)右鍵點(diǎn)擊Mine框的相應(yīng)行 點(diǎn)擊 Usetextblockfromtheirsbeforemine 合并完成 Ctrl S存盤 退出 選擇沖突文件 Resolved 標(biāo)記沖突已解決 系統(tǒng)自動(dòng)刪除因沖突而新建的文件 繼續(xù)進(jìn)行commit操作 在Eclipse中使用SVN 下載插件Subclipse需要根據(jù)Eclipse的版本下載相應(yīng)版本的Subclipse下載地址 http subclipse tigris org也可以在公司的資料庫中下載解壓縮后 文件夾結(jié)構(gòu)如下 在Eclipse中使用SVN 安裝 將該文件夾拷貝到Eclipse的plugin目錄下 并建立相應(yīng)的目錄結(jié)構(gòu) 我們命名為subversion 最終的目錄結(jié)構(gòu)如下 在Eclipse中使用SVN 安裝 配置文件在eclipse links目錄下 新建subversion link文件 文件內(nèi)容只有一行 path plugin subversion啟動(dòng)Eclipse 在 首選項(xiàng) 小組 中就可以看到Subversion的插件選項(xiàng)了 在Eclipse中使用SVN 配置完成后與SVN有關(guān)的幾個(gè)菜單項(xiàng)Team 最常用 與SVN版本庫互動(dòng)操作的大部分命令菜單Comparewith 比較版本差異Replacewith 在Eclipse中使用SVN 創(chuàng)建本地工作副本 新建資源庫說明 每個(gè)項(xiàng)目的資源庫地址 將由配置管理員發(fā)送郵件給項(xiàng)目團(tuán)對Checkout說明 在eclipse里checkout出來的 一定是該項(xiàng)目對應(yīng)資源庫 而不是整個(gè)項(xiàng)目的資源庫地址 否則會把太多非eclipse文件建立到本地的工作副本中 在Eclipse中使用SVN 導(dǎo)入數(shù)據(jù) 向版本庫中導(dǎo)入數(shù)據(jù)是使用版本庫的第一個(gè)步驟 然而 這個(gè)步驟并不常用 因?yàn)槊總€(gè)項(xiàng)目只需要導(dǎo)入一次而已 由配置管理員或者項(xiàng)目經(jīng)理完成 其他成員不需要關(guān)注 在Eclipse中使用SVN 常規(guī)操作 察看版本差異 Comparewith 資源庫中的最新內(nèi)容更新本地工作副本開始工作 修訂本地工作副本編譯文件通過提交修改重復(fù)上述操作 下班 分支和標(biāo)簽 使用場景 發(fā)布分支項(xiàng)目組在開發(fā)到一定階段 產(chǎn)生一個(gè)假定穩(wěn)定版本提交測試 主干被拷貝到分支 branch 1 0 開發(fā)者需要在測試假定穩(wěn)定版本時(shí)繼續(xù)開發(fā)新特性 在 trunk上為版本2 0工作 新工作在軟件測試時(shí)不可以中斷 如果測試中一個(gè)bug被發(fā)現(xiàn) 修改提交測試的分支branch 1 0 同時(shí)有規(guī)律地將修改合并到主干 如果繼續(xù)開發(fā)中一個(gè)bug被發(fā)現(xiàn) 修改主干 同時(shí)有規(guī)律地將修改合并到分支 當(dāng)測試結(jié)束 branches 1 0被打上標(biāo)簽發(fā)布 tags 1 0 0 這個(gè)標(biāo)簽被打包發(fā)布給客戶 也許 繼續(xù)維護(hù) branches 1 0 當(dāng)繼續(xù)在 trunk上為版本2 0工作 bug修正繼續(xù)從 trunk運(yùn)送到 branches 1 0 如果積累了足夠的bug修正 管理部門決定發(fā)布1 0 1版本 branches 1 0被標(biāo)簽發(fā)布到 tags 1 0 1 打包發(fā)布 整個(gè)過程隨著軟件的成熟不斷重復(fù) 當(dāng)2 0完成 一個(gè)新的2 0分支被創(chuàng)建 測試 打標(biāo)簽和最終發(fā)布 經(jīng)過許多年 版本庫結(jié)束了許多版本發(fā)布 進(jìn)入了 維護(hù) 模式 許多標(biāo)簽代表了最終的發(fā)布版本 分支和標(biāo)簽 特性分支一個(gè)特性分支是一個(gè)臨時(shí)分支 用來作復(fù)雜的修改而不會干擾 trunk的穩(wěn)定性 不象發(fā)布分支 也許要永遠(yuǎn)支持 特性分支出生 使用了一段時(shí)間 合并到主干 然后最終被刪除掉 它們在有限的時(shí)間里有用 分支和標(biāo)簽 標(biāo)簽分支被批準(zhǔn)打包發(fā)布 納入到標(biāo)簽下 許多標(biāo)簽代表了最終的發(fā)布版本 分支和標(biāo)簽 慵懶的拷貝 Subversion的版本庫有特殊的設(shè)計(jì) 當(dāng)你復(fù)制一個(gè)目錄 你不需要擔(dān)心版本庫會變得十分巨大 Subversion并不是拷貝所有的數(shù)據(jù) 相反 它建立了一個(gè)已存在目錄樹的入口 這個(gè)拷貝被可以被認(rèn)為是 懶的 如果你提交一個(gè)文件的修改 只有這個(gè)文件改變了 余下的文件還是作為原來文件的鏈接存在 這就是為什么經(jīng)常聽到Subversion用戶談?wù)?廉價(jià)的拷貝 與目錄的大小無關(guān) 這個(gè)操作會使用很少的時(shí)間 事實(shí)上 這個(gè)特性是Subversion提交工作的基礎(chǔ) 每一次版本都是前一個(gè)版本的一個(gè) 廉價(jià)的拷貝 只有少數(shù)項(xiàng)目修改了 當(dāng)然 拷貝與分享的內(nèi)部機(jī)制對用戶來講是不可見的 用戶只是看到拷貝樹 這里的要點(diǎn)是拷貝的時(shí)間與空間代價(jià)很小 所以你可以隨意做想要的分支 當(dāng)然對于一個(gè)團(tuán)隊(duì)協(xié)作的項(xiàng)目來說 其分支的設(shè)定規(guī)則是需要經(jīng)過項(xiàng)目團(tuán)隊(duì)認(rèn)可 管理者審批的 否則會給其他人的協(xié)作帶來混亂 TortoiseSVN 創(chuàng)建標(biāo)簽和分支 分支版本控制系統(tǒng)的一個(gè)特性是能夠把各種修改分離出來放在開發(fā)品的一個(gè)分割線上 這條線被稱為分支 標(biāo)簽版本控制系統(tǒng)的另一個(gè)特性是能夠標(biāo)記特殊的版本 例如某個(gè)發(fā)布版本 所以你可以在任何時(shí)候重新建立一個(gè)特定的構(gòu)件和環(huán)境 這個(gè)過程被稱作標(biāo)記 使用提醒分支和標(biāo)簽的實(shí)質(zhì)是 建立了一個(gè)新的工作文件副本 分支和標(biāo)簽意味著更多的維護(hù)版本 因此從配置管理角度來說 設(shè)置了只有經(jīng)過項(xiàng)目經(jīng)理審批才新建分支和標(biāo)簽 TortoiseSVN 獲取標(biāo)簽和分支中的文件 第一個(gè)方法 checkoutCheckout 在本地任意位置創(chuàng)建新的工作副本 對于已經(jīng)創(chuàng)建了工作副本的版
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度北京零售業(yè)店長勞動(dòng)合同續(xù)簽與終止
- 海運(yùn)合同不可抗力條款應(yīng)用
- 電子商務(wù)運(yùn)營實(shí)務(wù)操作指南
- 合伙購車協(xié)議書
- 民營醫(yī)院勞動(dòng)合同書
- 酒店運(yùn)營管理入門指南
- 游戲開發(fā)與優(yōu)化指南
- 電子商務(wù)平臺用戶體驗(yàn)優(yōu)化與營銷推廣方案
- 勞務(wù)分包合同個(gè)人
- 勞動(dòng)合同安全管理制度
- 中華人民共和國能源法
- 人居環(huán)境綜合治理項(xiàng)目項(xiàng)目背景及必要性分析
- 2024年法律職業(yè)資格考試(試卷二)客觀題試題及解答參考
- 2024年注冊建筑師-二級注冊建筑師考試近5年真題附答案
- 五年級口算題卡每天100題帶答案
- 食品感官檢驗(yàn):品評人員的篩選與培訓(xùn)
- 2024-2030年中國會務(wù)行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資風(fēng)險(xiǎn)預(yù)測研究報(bào)告
- 醫(yī)院緊急醫(yī)療救援管理制度
- 企業(yè)落實(shí)食品安全主體責(zé)任監(jiān)督管理制度
- 咨詢與評估管理制度
- 中醫(yī)辨證-八綱辨證(中醫(yī)學(xué)課件)
評論
0/150
提交評論