SVN安裝和使用說明.ppt_第1頁
SVN安裝和使用說明.ppt_第2頁
SVN安裝和使用說明.ppt_第3頁
SVN安裝和使用說明.ppt_第4頁
SVN安裝和使用說明.ppt_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

SVN安裝和使用說明 1 安裝及下載client端2 什么是SVN Subversion 3 為甚么要用SVN 4 怎么樣在Windows下面建立SVNRepository 5 建立一個Working目錄6 新增檔案及目錄到Repository中7 更新檔案及目錄8 更新至特定版本9 復制檔案及目錄10 制作Tag或是Release11 快速參考 下載Windows端程序 1 安裝及下載client端 大部分的TortoiseSVN的操作都是透過檔案管理員及鼠標右鍵就可以完成了 如果您之前使用過TortoiseCVS 應該會對這種操作方式感到十分親切 2 什么是SVN Subversion 有一個簡單但不十分精確比喻 SVN 版本控制 備份服務器簡單的說 您可以把SVN當成您的備份服務器 更好的是 他可以幫您記住每次上傳到這個服務器的檔案內容 并且自動的賦予每次的變更一個版本 通常 我們稱用來存放上傳檔案的地方就做Repository 用中文來說 有點像是檔案倉庫的意思 不過 通常我們還是使用Repository這個名詞 基本上 第一次我們需要有一個新增 add 檔案的動作 將想要備份的檔案放到Repository上面 日后 當您有任何修改時 都可以上傳到Repository上面 上傳已經存在且修改過的檔案就叫做commit 也就是提交修改給SVNserver的意思 針對每次的commit SVNserver都會賦予他一個新的版本 同時 也會把每次上傳的時間記錄下來 日后 因為某些因素 如果您需要從Repository下載曾經提交的檔案 您可以直接選擇取得最新的版本 也可以取得任何一個之前的版本 如果忘記了版本 還是可以靠記憶嘗試取得某個日期的版本 3 為甚么要用SVN 備份工作檔案是十分重要的 您永遠不知道計算機上的硬盤何時會壞掉 根據(jù)經驗法則再加上摩菲定理 壞事情往往都發(fā)生在最重要的時刻 例如 要release東西的前一刻 硬盤完全壞掉 無法修復 所以 常常備份工作數(shù)據(jù)是非常重要的 大部分公司的server都會有專門的備份機制 甚至是異地備援 絕對比放在自己的計算機里頭 或是隨身碟上面來的安全 版本控管非常重要 您無法保證手頭上最新版本永遠都是對的 很多時候 在經過數(shù)天努力工作后 您才發(fā)現(xiàn)走錯方向 需要將所有的修改回復到數(shù)天前版本 沒有幾個人能夠完全記住自己修改過什么東西 如果沒有做好版本控管 那么 最差的狀況就是要全部重來 伙伴間的數(shù)據(jù)同步也是非常重要的 很多時候 除了您個人外 還有其它的伙伴也需要您的檔案 怎么把最新的檔案提供給伙伴呢 用e mail 根據(jù)經驗 用e mail是一個很差的辦法 到了最后 根本就不知道哪一封e mail才是新的 因為可能您最新的e mail已經被當成垃圾信給丟了 別忘了 現(xiàn)在很多e mail軟件都有anti spam的功能 說不定這些信件都被當成廣告信給處理掉了 而且 您也應該知道一般檔案如果放在e mail內 檔案大小會變得比較大 通常是原來的4 3倍以上 如果每天更新一次 恐怕幾天沒收信的話 信箱就爆了 如果沒有一個好的辦法 備份不同版本是很耗費硬盤空間的 例如 您有一個總共10MB的目錄 使用單純的檔案備份 如果有10個版本就會變成100MB 20個版本就有200MB 如果 不想備份這么多版本 勢必就是要減少備份的次數(shù) 拉長備份周期將會導致數(shù)據(jù)遺失的危險性增高 把舊的不需要的備份刪除 根據(jù)經驗 只要時間一拉長 您跟本就不知道一個月以前的版本是重要或者是不重要 3 為甚么要用SVN SVN能幫我們解決上面的問題嗎 答案是肯定的 SVNRepository可以是自己計算機上的一個目錄 或者是隨身碟 不建議這樣用 當然也可以是公司的服務器 SVN有很棒的版本控管機制 所有上傳的版本都會幫您記錄下來 日后您可以隨時取得某一個時刻的版本 而且 也有版本分支及合并等好用的功能 SVN可以讓不同的開發(fā)者存取同樣的檔案 并且利用SVNServer作為檔案同步的機制 也就是說 您有檔案更新時 無須將檔案寄給您的開發(fā)成員 只需要告訴他新的版本已經在SVNServer上面 請他自己去SVNServer上面就可以取得最新版本 而且 SVNServer也可以做到當您上傳新版本后 自動發(fā)信給相關的成員 SVN的存放檔案方式是采用差異備份的方式 也就是說 他只會備份有不同的地方 所以很省硬盤空間 此外 他也可以針對所謂的非文字文件進行差異備份 4 怎么樣在Windows下面建立SVNRepository 假設您已經安裝前面所提及的TortoiseSVN這套軟件 現(xiàn)在我們先告訴您如何用自己的硬盤或是隨身碟當作SVNRepository的存放地點 如果您只想知道如何存取一個已經建立好的SVNServer上面的Repository 請直接跳過本節(jié) 假設您的要放置Repository的地方是E槽 您需要先建立一個空的目錄 以下面的例子而言 我們在E槽下面建立了一個名為svn repo的目錄 SVN并沒有限定Repository目錄名稱 您可以建立任何您自己喜歡的名稱 但是 強烈建議勿使用非英文的檔名 如中文或日文 透過您的檔案管理員 在E svn repo的Icon上面 按下鼠標右鍵后 選擇TortoiseSVN Createrepositoryhere 4 怎么樣在Windows下面建立SVNRepository 接著 您會看到如下的一個窗口 這個窗口主要是問您 您希望使用的Repository數(shù)據(jù)庫格式是FSFS還是BDB 基本上 請選擇FSFS就可以了 按下OK按鈕后 您將可以看到下一個畫面 這就表示您的SVNrepository已經成功的建立了 接下來就是要把您的檔案備份進來 日后 只要需要使用這個repository 我們就可以使用file E SVN REPO表示它 SVN就是透過這種URL的方式到如何與Repository取得聯(lián)系 各種URL的格式如下 file 磁盤驅動器 repository所在目錄 子目錄http 賬號 服務器名稱 repository所在目錄 子目錄https 賬號 服務器名稱 repository所在目錄 子目錄svn ssh 賬號 服務器名稱 repository所在目錄 子目錄其中 http表示使用一般的超文字傳輸通訊協(xié)議 https表示使用加密的超文字傳輸通訊協(xié)議 svn ssh表示透過SSH加密通訊的管道 進行存取 5 建立一個Working目錄 所謂的Working目錄其實就是您平常用來存放工作檔案的地方 通常我們會等到自己的工作做的一個段落的時候再進行備份 所以我們平常都是在Working目錄下面工作 等到適當時機在commit到repository中 舉例來說 我們想在D槽下面建立一個名為working的目錄 首先先把這個目錄建立出來 此時 這個目錄應該為空的 在檔案管理員中按下右鍵后 您可以在working目錄的icon上按 也可進入working目錄后 在空白的地方按 選擇SVNcheckout 5 建立一個Working目錄 接著您可以看到如下的畫面 首先我們要填入的是repository的位置 對于SVN來說 repository的位置都是URL 由于我們前面已經在E槽建立一個repository 因此 我們現(xiàn)在要在URLofrepository這一欄填入file E svn repo 5 建立一個Working目錄 接著 稍微看一下Checkoutdirectory 這個字段應該要指向您的working目錄 確認后 按下OK按鈕 您應該可以看到如下的訊息窗口 這樣就表示動作完成 6 新增檔案及目錄到Repository中 假設您前面的動作都無誤 現(xiàn)在您開始開發(fā)一個新的程序 假設您開發(fā)的程序將放在前面建立的working目錄下面的my prj子目錄 如下所示 假設您已經編輯好檔案 準備把他們放到SVN的repository中 您需要在my prj目錄的icon上面 按鼠標右鍵 并且選擇TortoiseSVN Add 6 新增檔案及目錄到Repository中 接著 TortoiseSVN會把準備要加入的檔案及目錄 顯示給您看 打勾的就是等下要被加入到Repository中的 如果您有某些檔案或是目錄不想在這次加入 您可以讓該項目不要被勾選 如此 它就不會被加入到Repository去 6 新增檔案及目錄到Repository中 按下OK后 您將會看到如下的訊息窗口 這樣就表示成功了 有一點要注意的是 這個Add的動作并未真正的將檔案放到Repository中 僅僅是告知SVN準備要在Repository中放入這些檔案 6 新增檔案及目錄到Repository中 此時 如果您透過檔案管理員查看這些檔案 應該會看到一個白色紅底的驚嘆號在檔案icon的下方 這是表示您的working目錄中的檔案與Repository中的檔案還沒有同步 現(xiàn)在我們要多一個commit的動作 讓這些檔案真正的放入到Repository中 6 新增檔案及目錄到Repository中 您可以在my prj目錄的icon上或者是my prj目錄內的空白處按下鼠標右鍵 叫出如下的選單 并且選擇SVNcommit 緊接著 您將會看到如下的窗口出現(xiàn) 在這個窗口中 下半部會列出一個清單 讓您清楚的了解到哪些檔案要被commit到repository中 同樣的 如果您有檔案不想在這個時候commit到Repository 您可以取消選取的檔案 這樣他們就不會被commit到Repository中 6 新增檔案及目錄到Repository中 在檔案列表的上方是Message欄 您可以在欄中輸入本次commit的目的 這是十分重要的字段 當您commit的次數(shù)很多時 可以靠這個訊息知道版本與版本之間的差異 當您輸入好Message 按下OK之后 就可以看到如下的窗口出現(xiàn) 通知您已經將指定的檔案送到Repository中 6 新增檔案及目錄到Repository中 您可以到先前的folder中 確定是否所有的檔案icon都有如下的綠色勾勾在上面 這樣代表您的檔案都正確無誤的到repository中 有時候 因為Windows本身的問題 您可能會看到有些icon沒有變成綠色的勾勾 此時 多按F5幾次 應該就可以解決這個問題 如果 仍然不行 表示您之前的commit動作真的有問題 請仔細檢查之前的commit動作是否正確 7 更新檔案及目錄 為何需要更新 由于版本控制系統(tǒng)多半都是由許多人共同使用 所以 同樣的檔案可能還有人會去進行編輯 為了確保您工作目錄中的檔案與Repository中的檔案是同步的 建議您在編輯前都先進行更新的動作 在此 我們都先假設您已經將檔案checkout過一次 現(xiàn)在要說明的是如何在一個checkout過的目錄進行update 在想要更新的檔案或目錄icon上面按下鼠標右鍵 并且選擇SVNUpdate 正常的狀況下 您可以看到如上的窗口 在這個窗口中會顯示有哪些文件更新了 如果沒有看到檔案更新的相關信息 這表示您的目錄中的檔案已經是最新的 所以無須進行更新 8 更新至特定版本 有時我們需要回溯至特定的日期或是版本 這時就可以利用SVN的Updatetorevision的功能 在想要更新的檔案或目錄icon上面按下鼠標右鍵 并且選擇TortoiseSVN Updatetorevision 8 更新至特定版本 在這個Update窗口中 您可以選擇更新到最新版本 HEAD 也可以選擇更新到某個指定的版本 Revision 當然 您可能早就記不起來正確的版本號碼 可能只隱約的記得大概在什么時間 沒關系 按下Showlog按鈕 您就可以回顧歷史了 所有您曾經做過的動作 及其日期與對應的版本都會列在這個窗口上面 只要在你想要的版上面點一下 讓他變成反白 然后按下OK 這個版本就會自動填入Update窗口中的Revision字段中 您只要再按下一次OK 這個版本就會被取出來到您的硬盤中 9 復制檔案及目錄 很多時候您會希望有另外一個復制的目錄來進行新的編修 等到確定這個分支的修改已經完畢了 再合并到原來的主要開發(fā)版本上 舉例來說 我們目前在workingcopy下面有如下的目錄及檔案 9 復制檔案及目錄 現(xiàn)在 我們要為trunk這個目錄建立一個branch 假設我們希望這個目錄是在D working my prj branch my new branch for testing 首先我們可以在trunk目錄下面的空白處 或是直接在trunk的icon下面按下鼠標右鍵 在選擇Branch Tag 這個項目后 您將會看到如下的對話框出現(xiàn) 9 復制檔案及目錄 請先確認FromWCatURL 中的目錄是您要復制的來源目錄 接著 在ToURL中輸入您要復制過去的路徑 通常我們會將所有的branch集中在一個目錄下面 以上面的例子來說 branch檔案都會集中在branch的子目錄下面 在ToURL中您只需要輸入您要的目錄即可 目錄不存在時 會由SVN幫您建立 特別需要注意的是SVN因為斜線作為目錄分隔字符 而非反斜線 接著在Logmessage輸入您此次branch的目的為何 按下OK就可以了 如果成功 將可以看到下面的畫面 9 復制檔案及目錄 按下OK就可以關閉這個窗口了 如果您此時立刻去workingcopy的branch子目錄下面 您將會失望的發(fā)現(xiàn)在該目錄下面并沒有剛剛指定的目錄存在 這是因為您workingcopy的部份還是舊的 您只需要在branch子目錄下面進行SVNupdate就可以看到這個新增的目錄了 新增的目錄就與原來的目錄無關了 您可以任意對他進行編輯 一直到您確認好所有在branch下面該做的工作都完成后 您可以選擇將這個branchmerge回原來的trunk目錄 或者是保留它在branch中 要merge回trunk目錄中 方法很簡單 以上面的例子來說 我們在D working my prj trunk目錄空白處 按下鼠標右鍵 選擇Merge 9 復制檔案及目錄 接著可以看到如下的畫面 這個畫面主要分為三個部份 前面的From 與To 是要問您打算從Branch中的哪個版本到哪個版本 merge回原來的trunk目錄中 因此 From跟To的URL字段應當都是指定原來branch的目錄下 剩下的就是指定要merge的revision范圍 以上面的例子而言 我們從Branch的Revision7開始merge到Branch下面的最新版本 您可以透過 Dryrun按鈕 試作一次Merge 這個merge只會顯示一些訊息 不會真正的更新到trunk的目錄去 只有按下Merge按鈕后 才會真正的將branch的檔案與trunk的檔案合并起來 9 復制檔案及目錄 上面的訊息告訴我們在trunk目錄下面的yyyy cpp及xxx1 cpp已經被更改過了 如果您在現(xiàn)在到trunk目錄下 會看到這兩個檔案處于被修改的狀態(tài) 9 復制檔案及目錄 如果您確認這次的merge沒有問題 您可以直接使用commit來將這兩個被修改的檔案commit回SVNrepository上 如果有問題 您可以直接修改這兩個檔案 直到確認ok了 再行commit 9 復制檔案及目錄 一切順利的話 您就成功的將branch的檔案merge回trunk了 10 制作Tag或是Release 所謂的Tag或是Release就是一個特別的版本 因為這個版本可能有特別的意義 例如 這個版本是特別的Milestone或是release給客戶的版本 其實 Tag與Release的作法與Branch完全相同 只是Branch可能會需要merge回原來的trunk中 而tag及release大部分都不需要merge回trunk中 舉例來說 今天我們的trunk做了一版 這個版本被認定是軟件的1 0版 1 0版對于開發(fā)來說是一個非常重要的里程碑 所以我們要特別為他做一個標記 亦即Tag 假設 這個1 0版是要正式release給客戶或是相關vendor 我們要可以為他做一個Release的標記 基本上 SVN只有目錄的概念 并沒有什么Tag的用法 所以您會看到再SVN的選單上面 Branch與Tag是同一個項目 以這個1 0的例子來說 我們就是在Trunk上面 按下鼠標右鍵 選擇Branch Tag的項目 10 制作Tag或是Release 成功的話 您就在Tag目錄下面建立了一個1 0的目錄 當然 如果您這時到Tag的目錄下面去 會看不到這個目錄 您需要在Tag目錄下面update一下 才能看到它 10 制作Tag或是Release 制作Release的作法與Tag完全相同 只是把Tag的目錄換成Release而已 看到這里 相信大家都已經領悟到無論是Branch Tag或是Release都只是將指定的Trunk版本復制一份到另外一個目錄去 至于這個目錄要叫Branch還是叫Release SVN根本就不管 所以 您也可取其它的目錄名稱 不過 Branch Tag及Release已經是SVN上面約定成俗的名稱 所以 除非您知道自己為何這樣做 否則 最好還是follow這個命名原則 以免后面新加入的人看不懂 NOTE 同樣的道理Trunk也只是一個約定成俗的名稱 不一定要叫Trunk 只是大家看到Trunk目錄就會知道這里面放的是主要的開發(fā)主干 11 快速參考 前面寫了不少廢話 主要是給完全沒有版本控制觀念的人看的 如果你想直接知道某個功能如何使用 請看下面的章節(jié) 在后面的說明 皆以d working當作工作目錄 您可以將他換成其它任何您想要的目錄 11 1取得 Checkout Repository1 開啟檔案管理員 進入d 2 在檔案管理員空白處按下鼠標右鍵 選擇SVNCheckout 3 在Checkout對話框中 URLofrepos

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論