搜尋
首頁常見問題svn怎麼用
svn怎麼用Aug 09, 2019 am 10:05 AM
svn

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
PHP开发中如何使用SVN进行版本控制PHP开发中如何使用SVN进行版本控制Jun 27, 2023 pm 01:39 PM

在PHP开发中进行版本控制是很常见的操作,其中最常用的工具就是SVN(Subversion)。它可以方便地管理代码的历史版本以及协同开发过程中的代码更新。下面将介绍如何在PHP开发中使用SVN进行版本控制。一、安装SVN客户端和服务端首先需要安装SVN客户端和服务端。SVN客户端可以在SVN官网上下载对应的版本,安装即可,而服务端则需要自行搭建,具体方法可以

Java SVN:代码仓库的守护者,确保代码稳定性Java SVN:代码仓库的守护者,确保代码稳定性Mar 09, 2024 am 09:20 AM

SVN简介SVN(Subversion)是一种集中式版本控制系统,用于管理和维护代码库。它允许多个开发者同时协作开发代码,并提供对代码历史修改的完整记录。通过使用SVN,开发者可以:保障代码稳定性,避免代码丢失和损坏。追踪代码修改历史,轻松回滚到之前的版本。协同开发,多个开发者同时修改代码而不会冲突。SVN基本操作要使用SVN,需要安装SVN客户端,例如TortoiseSVN或SublimeMerge。然后,您可以按照以下步骤执行基本操作:1.创建代码库svnmkdirHttp://exampl

详解如何安装和设置EclipseSVN插件详解如何安装和设置EclipseSVN插件Jan 28, 2024 am 08:42 AM

EclipseSVN插件的安装和设置方法详解Eclipse是一个广泛使用的集成开发环境(IDE),它支持许多不同的插件来扩展其功能。其中之一是EclipseSVN插件,它使开发人员能够与Subversion版本控制系统进行交互。本文将详细介绍如何安装和设置EclipseSVN插件,并提供具体的代码示例。第一步:安装EclipseSVN插件打开Eclipse

用vimdiff替代svn diff:比较代码的工具用vimdiff替代svn diff:比较代码的工具Jan 09, 2024 pm 07:54 PM

在linux下,直接使用svndiff命令查看代码的修改是很吃力的,于是在网上搜索到了一个比较好的解决方案,就是让vimdiff作为svndiff的查看代码工具,尤其对于习惯用vim的人来说真的是很方便。当使用svndiff命令比较某个文件的修改前后时,例如执行以下命令:$svndiff-r4420ngx_http_limit_req_module.c那么实际会向默认的diff程序发送如下命令:-u-Lngx_http_limit_req_module.c(revision4420)-Lngx_

SVN在CentOS上的安装及命令行安装SVN在CentOS上的安装及命令行安装Feb 13, 2024 am 11:24 AM

在CentOS上安装SVN是非常常见的操作,它是一个功能强大的版本控制系统,可以用于管理和追踪软件开发过程中的变更,本文将详细介绍如何在CentOS上安装SVN,并提供一些常用的命令行安装方法。在CentOS上安装SVN有多种方法,下面将介绍两种常用的安装方式。1.打开终端,以root用户身份登录。2.运行以下命令更新系统软件包列表:```yumupdate3.运行以下命令安装SVN:yuminstallsubversion4.安装完成后,可以通过运行以下命令验证SVN是否成功安装:svn--v

svn与vss的区别是什么svn与vss的区别是什么Jun 21, 2022 am 11:23 AM

区别:1、vss是微软开发的,是收费的,而svn是开源免费的;2、vss必须有客户端,而svn可以用客户端,也可以用命令行模式,还可以用网页方式只读访问;3、vss只支持windows系统,而svn支持windows和linux系统;4、vss是“锁定-编辑-解锁”模式,svn默认是“修改-冲突-合并”模式;5、vss的版本号对应的是单个文件,svn的版本号对应的是整个版本库。

Linux开发者的必备技能:简单掌握SVN版本控制Linux开发者的必备技能:简单掌握SVN版本控制Jan 26, 2024 pm 09:54 PM

身为Linux开发人员,往往需要运用SVN控制项目版本。对于优秀开发者而言,熟知如何查阅SVN版本无疑是必备技能之一。今日,笔者想借此机会和各位分享自己的心得,希望能助您更好地掌握这一实用技巧。1.安装SVN命令行工具请先在Linux环境中安装SVN命令行工具哦!请拨通终端,然后稳妥地输入下面这条指令来完成安装吧:```尊敬的用户,请执行sudoapt-getinstallsubversion以安装Subversion。2.连接到SVN服务器安装完毕后,我们需要连接到SVN服务器。输入以下命令:

PHP入门指南:SVN版本管理PHP入门指南:SVN版本管理May 20, 2023 am 08:29 AM

作为一种常用的服务器端脚本语言,PHP凭借其开源、跨平台的优势,被广泛应用于Web开发领域。而在多人协作的开发中,版本控制是一个不可或缺的工具,它可以有效地管理源代码的修改与更新,避免因团队成员之间代码不同步而造成的冲突。而SVN作为一款流行的版本控制工具,在PHP开发中的应用也十分广泛。本文将为大家介绍PHP开发中的SVN版本控制的基础知识,包括SVN的安

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。