成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

學習筆記 :SVN使用方法詳解

開發 項目管理
SVN是如何使用的你是否熟悉,在這里簡單向大家介紹一下SVN是如何使用,希望通過本文的介紹大家能夠掌握SVN使用方法,歡迎大家一起來學習。

本節和大家一起學習一下SVN使用方法,主要從三方面來介紹,在這里和大家分享一下,希望本節的介紹對你的學習有所幫助。

SVN使用:

1. 首先是安裝TortoiseSVN這個Win下的客戶端(當然用subversion自己的svn這個客戶端也可以完成所有操作,理論上)。這個客戶端是集成到Explore里的,所以沒有什么獨立的窗體,所有操作右鍵菜單來完成。

2. SVN使用基本流程
下面說的命令都與TortoiseSVN菜單上的名稱一致。
a. 初次(initial)取出(checkout)repos,建立本地工作拷貝(WC WorkingCopy)。
b. 與repos同步(update),保證將要進行的編輯是***版本。
c. 編輯源代碼(包括創建、修改、刪除)。
d. 與repos同步(update),提交之前先要同步到***的版本,保證所有在自己之前的有關提交已經在本地有所知曉。
e. 解決沖突(resolve conflict)。
f. 提交(commit),一定要寫上這次提交的內容的摘要,便于以后查閱。
g. 繼續b。
每次開始新的編輯前的同步repos很重要,另外經常地update沒有壞處,特別是多人項目中。如果每次提交(commit)前不進行更新(update)的到***的版本的話,svn會提示當前的拷貝過期,需要更新。
在使用的過程中,時刻注意當前的工作拷貝(WC WorkingCopy)所對應的URL很重要,特別是當有了branches和tag等時候。使用svn info可以查看到這些信息。使用TortoiseSVN時,通過下面的操作查看這些信息:右鍵單擊工作拷貝的根文件夾(不是上級文件夾),菜單中選擇則屬性(不是TortoiseSVN那個菜單),然后在出現的對話框中選擇Subversion標簽就可以看到了。

3. SVN使用branches
(關于branches的內容可以在svn-book:Chapter4 Branching and Merging得到)
當多個人合作(Sally和John)時,可能有這樣的情況出現:John突然有個想法,跟原先的設計不太一致,可能是功能的添加或者日志格式的改進等等,總而言之,這個想法可能需要花一段時間來完成,而這個過程中,John的一些操作可能會影響Sally的工作,John從現有的狀態單獨出一個project的話,又不能及時得到Sally對已有代碼做的修正,而且獨立出來的話,John的嘗試成功時,跟原來的合并也存在困難。這時***的實踐方法是使用branches。John建立一個自己的branch,然后在里面實驗,必要的時候從Sally的trunk里取得更新,或者將自己的階段成果匯集到trunk中。
附:TortoiseSVN幫助里的branch的說明:
One of the features of version control systems is the ability to isolate changes onto a separate line of development. This line is known as a branch. Branches are often used to try out new features without disturbing the main line of development with compiler errors and bugs. As soon as the new feature is stable enough then the development branch is merged back into the main branch (trunk).

3.1 創建branch
(詳細的解釋參考svn-book:Chapter4 Branching and Merging:Using Branches:Creating a Branch)
實際是svn copy操作
$ svn copy SourceURL/trunk \
       DestinationURL/branchName \
      -m "Creating a private branch of xxxx/trunk."
TorToiseSVN操作更為簡單,只要在working copy里右鍵空白,然后在TorToiseSVN菜單中選擇Branches/Tags,就可將整個目錄分支(branch)出去,或者點擊某個文件將文件單獨分支(branch),而且有多種選擇,指定是“直接在服務器端copy HEAD版本”、“直接在服務器端copy指定版本”(這兩種相當于svn copy中源和目的都是URL)、“用當前的工作拷貝(WC Working Copy)生成”。同時還有一個checkbox用于在完成了這次分支(branch)后直接切換(switch)當前的工作拷貝(WC Working Copy)到分支。#p#

3.2SVN使用中 使用merge來應用branch的修改

3.2.1 trunk的變化及時更新到branch
例子原型出自svn-book:Chapter 4:Branching and Merging:Copying Changes Between Branches:Copying Specific Changes
接著前面的例子,John在實驗過程中,Sally對原有的某個文件做了一些改動,如拼寫檢查等,John知道了,希望將這些改動也放到自己的當前的工作拷貝(WC Working Copy)中。svn中使用merge指令來完成。假設Sally的修訂使repos從Rev345到了Rev346,所以John就是要將Rev345:Rev346(前:后)的變更應用到當前的WC。使用TortoiseSVN的操作就是在WC中右鍵空白處,然后在相關菜單中選擇“Merge...”,在彈出的對話框中,From指定比較前項的位置和版本(這里是trunk的Rev345),To指定后項的位置和版本(這里是trunk的Rev346,可以使用一個復選框使的To的位置與From相同)。
相應的svn merge指令參考后面“merge操作實質”可知。

3.2.2 branch最終合并回trunk
例子原型出自svn-book:Chapter 4:Branching and Merging:Common Use-Cases:Merging a Whole Branch to Another
John經過嘗試,終于實現了想法,并通過測試,現在他決定將所有的工作合并到trunk去。
這里要注意的是,John打算合并的是自己的工作,假設John的branch(johnBranch)開始于Rev233,John的工作提交到repos是Rev289,那么John的工作是將johnBranch:Rev233到johnBranch:Rev289的內容合并到trunk。而不是johnBranch:Rev233到trunk:HEAD,因為這個變化包含了對John工作的增加和對trunk中其他人的工作的撤銷(如果John沒有及時將他人在trunk的工作合并到自己的johnBranch的話)。
TortoiseSVN的操作是這樣的,先checkout出trunk(也可以switch到trunk),即保證當前的工作拷貝(WC WorkingCopy)是trunk,然后使用菜單中的“Merge...”,選擇From為johnBranch:Rev233選擇To為johnBranch:Rev289。
相應的svn merge指令參考后面“merge操作實質”可知。 下面我們來看一下SVN使用中merge操作的實質。

3.2.3 merge操作的實質
svn merge命令的原型如下
svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
svn merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]
svn merge -r N:M SOURCE[@REV] [WCPATH]
In the first and second forms, the source paths (URLs in the first form, working copy paths in the second) are specified at revisions N and M. These are the two sources to be compared. The revisions default to HEAD if omitted.
In the third form, SOURCE can be a URL or working copy item, in which case the corresponding URL is used. This URL, at revisions N and M, defines the two sources to be compared.
WCPATH is the working copy path that will receive the changes. If WCPATH is omitted, a default value of “.” is assumed, unless the sources have identical basenames that match a file within “.”: in which case, the differences will be applied to that file.
可以看出merge實際是比較前后(源:目的)兩個版本(revision)之間的差別(用運算符就是 目的 – 源),然后將這些差別應用(施用)到工作拷貝(WC WorkingCopy)上的一個操作,根據源與目的版本號的先后,出現了“合并”、“撤銷”(源版本號大于目的版本號)等不同效果,然后通過提交(commit)來將這些效果保存到服務器端的repos中。本節關于SVN使用方法介紹完畢。
 

【編輯推薦】

  1. SVN使用說明跟蹤介紹
  2. Windows下SVN使用手冊簡明介紹
  3. SVN使用教程簡單配置篇詳解
  4. SVN基本操作之新手上路
  5. 術語匯編 TortoiseSVN使用說明

 

 

 

責任編輯:佚名 來源: csdn.net
相關推薦

2010-05-31 11:30:57

SVN使用

2009-11-18 13:38:27

2011-05-20 17:05:59

ADO.NET

2010-05-24 12:53:38

子命令SVN merg

2010-05-27 13:08:46

SVN簡易使用手冊

2010-06-01 11:02:16

SVN合并

2010-06-01 12:49:04

SVN分支模式

2010-06-02 09:06:26

SVN學習

2009-12-28 13:28:03

WPF視頻

2009-12-31 16:04:39

ADO.NET技術

2010-05-28 17:15:17

SVN分支與合并

2010-10-09 10:30:03

JS event

2009-12-02 16:04:44

PHP fsockop

2010-01-28 17:07:03

Android Gal

2010-06-03 17:38:03

Hadoop命令

2010-05-21 11:07:36

2010-07-09 14:39:42

UML類圖

2010-01-25 14:10:21

C++堆棧

2009-11-30 17:43:54

PHP split()

2009-08-25 16:54:28

C# RichText
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久影院8一贰佰 | 精品国产乱码久久久久久图片 | 国产中文视频 | 国产精品久久久久久久免费观看 | 武道仙尊动漫在线观看 | 欧美午夜激情在线 | 99爱国产 | 91免费小视频 | 91在线视频免费观看 | 亚洲精品乱码8久久久久久日本 | 国产精品999 | 中文字幕日韩欧美 | 7777精品伊人久久精品影视 | 日韩影院在线 | 国产欧美一区二区三区久久 | 国产不卡视频 | 99精品久久 | 作爱视频免费观看 | 91视频三区| 国产精品二区三区在线观看 | 亚洲成人精品影院 | 日韩av福利在线观看 | 黄色在线免费观看 | 99热精品在线观看 | 五月激情六月婷婷 | 99国产精品视频免费观看一公开 | 亚洲精品久久久一区二区三区 | 久久国产精品亚洲 | 一区 | 亚洲精品久久久久久久久久吃药 | 国产在线视频一区 | 国产综合av | 欧美国产日韩在线观看成人 | v亚洲| 国产精品毛片一区二区在线看 | 男女羞羞的网站 | 国产一二三区电影 | 天堂av在线影院 | 欧美bondage紧缚视频 | h视频网站在线观看 | 精品免费视频一区二区 |