首頁 >常見問題 >svn怎麼用

svn怎麼用

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼原創
2019-08-09 10:05:3836130瀏覽

svn怎麼用

使用場景:

假如你的專案(這裡指的是手機用戶端專案)的某個版本(例如1.0版本)已經完成開發、測試並且已經上線了,接下來接到新的需求,新需求的開發需要修改多個文件中的程式碼,當需求已經開始開發一段時間的時候,突然接到使用者或測試人員的回饋,專案中有個重大bug需要緊急修復,並且要求bug修復後要立即上線;此時該怎麼修復bug呢?是在目前已經開發新需求的基礎上進行修復嗎?答案是否定的,原因是:如果是在已經開發新需求的基礎上進行修復bug,那麼新需求還沒開發好,更沒有測試,怎麼立刻(或最可能快的)上線? !再次如果新功能的開發和bug修復的程式碼都牽涉到同一段程式碼衝突了怎麼辦 。很顯然無法在目前開發的程式碼基礎上進行bug修復工作完美的解決方案是:在當時完成的那個版本中進行bug fix,這樣帶來的好處是:

1:bug修復好之後可立即上線,不會因為新需求還沒有完成或測試而延遲上線時間

2:bug修復是在原來上線的那個版本進行修復的,引起新bug的風險小,如果是在新需求的基礎上修復bug, 那麼新功能可能會帶來新的bug

相關推薦:《SVN影片教學

#SVN倉庫目錄結構Repository:

(1)trunk

(2)tags

(3)branches





trunk(主幹|主線) branchs(分支) tags(標記)

truck(主幹|主線|主分支):是用來做主方向開發的,新功能的開發應放在主線中,當模組開發完成後,需要修改,就用branch。

branch(分支):分支開發和主線開發是可以同時進行的,也就是並行開發,分支通常用於修復bug時使用.

svn怎麼用tag(標記):用於標記某個可用的版本,可以標記已經上線發布的版本,也可以標記正在測試的版本,通常是唯讀的。

svn怎麼用

SVN特定操作步驟:(TortoiseSVN版本: 1.8.8)

svn怎麼用

一:建立倉庫

1. 創建目錄結構D:\TortoiseSVN\Repository\Repo-iOS

2. 在該目錄結構上右鍵


##---> TortoiseSVN


---> Create repository here(建立倉庫這裡) 


---> Create folder structure(建立檔案結構) ---> Start Repobrowser(開始倉庫瀏覽) --- > Ok


svn怎麼用

#二:將項目上傳到SVN上

svn怎麼用

桌面右鍵

---> TortoiseSVN

--->repo-browser--> URL:  file:///D:/TortoiseSVN/ Repository/Repo-iOS ---> Ok

---> 選取trunk資料夾右鍵

##---> Add folder... 

svn怎麼用

---> 選取要上傳到SVN的專案的最外層目錄,輸入日誌

---> Ok



相關推薦:《

常見問題

#三:Check Out ######1. 在電腦任一位置創建一個存放項目程式碼的目錄,例如:D:\TortoiseSVN\Repository\Source#######2. 將程式碼檢出到該位置############## 四:開發週期######1. 在目錄D:\TortoiseSVN\Repository\Source\trunk\MyAppProject上進行開發,注意是在trunk主線上######因為專案剛建立,這是在開發新功能,所以要在主線上開發#########2. 開發一段時間後,經過測試,上線到App Store,Android上傳到其它應用商城,摘取上線時的HomeViewController檔案中一段程式碼如下# ########[objc] view plain copy###### 在CODE上查看程式碼片派生到我的程式碼片###
- (void) viewDidLoad {  
   [super viewDidLoad];  
   // -----------------------------------------  
    int y = 0;  
    int result = 10 / y;     
    NSLog(@"iOS APP 第一阶段开发完成了! 结果是:%ld", result);  
   // End  
}

3. 在D:\TortoiseSVN\Repository\Source\tags 目錄下新建一個目錄:1.0,並將該目錄提交到SVN上,然後右鍵        D:\TortoiseSVN\Repository\Source\trunk\MyAppProject該目錄---> TortoiseSVN---->Branch/tag... -----> To Path :/tags/1.0/MyAppProject 並選取Head revision in repository ---> Ok此時Source/ tags/1.0 目錄中沒有任何內容,需要更新一下該目錄做update操作。更新之後看到一個完整的專案原始碼保存到該目錄中(該目錄下的源碼可看做是trunk目錄下版本為1.0的一個副本),查看一下/tags/1.0/HomeViewController中的viewDidLoad和trunk/MyAppProject /HomeViewController中的viewDidLoad程式碼完全一樣。

svn怎麼用

svn怎麼用

4. 開發下一階段的新需求,開發中ing

5. 使用者或測試人員回饋應用程式有重大bug,需要立即修復該bug並儘快上線, 此時程式設計師需要為tags/1.0 下的MyAppProject 打一個分支branch,

操作流程如下:選取Source/ tags/1.0/MyAppProject 右鍵TortoiseSVN---->Branch/tag... -----> To Path:/branches/MyAppProject  ---> Ok

此時看D: \TortoiseSVN\Repository\Source\branches目錄下仍然沒有任何內容,也需要update一下,更新之後發現該目錄下

也出現一個完整的項目代碼(該代碼可看做是tags/1.0/ MyAppProject的一個副本),注意打分支和打標記都是使用Branch/tag...選單,不同的是To Path 的目錄不一樣,圖解看打分支的圖,只是to path 值不一樣,此時branches /MyAppProject/HomeViewController中的viewDidLoad和tags/1.0/MyAppProject/HomeViewController中的viewDidLoad程式碼完全一致。

6. 切換工作空間,使用Xcode|Eclipse整合工具開啟/branches/MyAppProject下的項目,然後在此基礎上調試並修復bug,注意打開的必須是分支中的項目

7. bug 修復好後,先提交修改的文件,並進行客戶端App上線,上線完成後再將branches/MyAppProject/打個tag到1.0.1目錄下(tags/1.0.1) (操作步驟同步驟3),tag操作完成後,可以看到tags/1.0.1/HomeViewController.viewDidLoad 和  branches/ MyAppProject/HomeViewController.viewDidLoad是完全一致的,將branches/MyAppProject打一個新的tag是以便於下次在此基礎上再次修復bug,至此bug修復已經完成;修復bug後的程式碼如下:

#[objc] view plain copy

在CODE上查看程式碼片衍生到我的程式碼片

r​​rreee

8. 接下來將branch和trunk進行合併,操作步驟如下:

右鍵branches/MyAppProject ------>TortoiseSVN

----> Merge... 

---> Merge a range of revisions 

----> Next ---> URL to merge from : file:///D:/TortoiseSVN/Repository/Repo-iOS/trunk/MyAppProject 

----> Next

- ---> Merge

svn怎麼用

svn怎麼用

#9. trunk和branches進行合併步驟如下,

右鍵/turnk/MyAppProject ----> Merge... -----> Merge a range of revisions   -----> Next 

-----> ;  URL to merge from : file:///D:/TortoiseSVN/Repository/Repo-iOS/branches/MyAppProject

步驟同上,只是URL to merge from 的路徑不一樣。合併完成後,請查看/trunk/MyAppProject/HomeViewController/viewDidLoad方法如下:

[objc] view plain copy

 在CODE上檢視程式碼片衍生到我的程式碼片

- (void) viewDidLoad {  
   [super viewDidLoad];  
   // -----------------------------------------  
    int y = 10;  
    int result = 10 / y;  
    NSLog(@"iOS APP 第一阶段开发完成了! 结果是:%ld", result);  
   // End  
  
   NSLog(@"1.0 版本闪退bug 已修复, 程序出现除0异常");  
}

10. 此時合併徹底結束,branches目錄下的源碼如果不想要也可以刪掉,接著修改bug的這位程式設計師需要切換工作空間到主線上來,使用Xcode重新開啟trunk/ MyAppProject項目,接著開發尚未完成的新功能。 SVN目錄如下:     

svn怎麼用

說明:

1. 分支開發與主幹發展是兩個完全獨立的過程,兩者可以同時進行開發

2. 因分支和主幹開發是並行的,所以兩者可以任意的多次提交當前工程所修改的文件

以上是svn怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多