概述
本次SVN提交規(guī)范主要針對當前項目中出現(xiàn)的SVN管理難涡匀,開發(fā)流程控制難掌控渊跋,項目進度記錄不準確等問題而提出着倾。
規(guī)范
目標卡者,要求
要求每個角色都要進行規(guī)范化SVN作業(yè)。
目錄結(jié)構(gòu)與開發(fā)模式
分散式分支開發(fā)模式原理
Svn://project/
+trunk/(主開發(fā)目錄)
+branches/(分支開發(fā)目錄)
+dev_1.0_function1(功能性分支1)
+dev_2.0_function2(功能性分支2)
…
+tags(存檔目錄材诽,不允許修改)
-
1.0的開發(fā)脸侥,做一個dev_1.0的功能性分支
Svn://project/ +trunk/(不承擔開發(fā)任務(wù)) +branches/ +dev_1.0_function1 +tags
-
1.0功能開發(fā)完成盈厘,合并分支到主干
Svn://project/ +trunk/(merge from branch dev_1.0_function1) +branches/ +dev_1.0_function1(開發(fā)任務(wù)結(jié)束沸手,凍結(jié)) +tags
-
測試完成,根據(jù)主干做一次1.0的tag
Svn://project/ +trunk/(merge from branch dev_1.0_function1) +branches/ +dev_1.0_function1(開發(fā)任務(wù)結(jié)束跳仿,凍結(jié)) +tags +tag_release_1.0(copy from trunk)
-
1.0版本結(jié)束菲语,做下一個版本的開發(fā)2.0
Svn://project/ +trunk/(merge from branch dev_1.0_function1) +branches/ +dev_1.0_function1(開發(fā)任務(wù)結(jié)束谨究,凍結(jié)) +dev_2.0_function2(2.0的開發(fā)) +tags +tag_release_1.0(copy from trunk)
-
1.0版本出現(xiàn)bug泣棋,直接在dev_1.0版本上修復(fù)
Svn://project/ +trunk/(merge from branch dev_1.0_function1) +branches/ +dev_1.0_function1(bugfix) +dev_2.0_function2(2.0的開發(fā)) +tags +tag_release_1.0(copy from trunk)
-
選擇性的進行代碼合并
1,在dev_1.0版本上修復(fù)完成后需要同步合并代碼到其他的開發(fā)分支上去 2,需要合并到主干然后重新打包上線一個版本用于修復(fù)線上緊急bug
使用規(guī)范
命名規(guī)范
- 分支名稱采用固定名稱與下劃線結(jié)合方式進行功能性分支描述如:dev_1.0_crm潭辈。
- 存檔名稱統(tǒng)一采用tag_release_版本的方式把敢。
提交規(guī)范
提交之前先更新
在每次提交文件的時候,先進行必要的更新操作婶恼,因為柏副,有可能在你修改文件的期間,別人也修改了同樣的文件眷篇,那么本次的提交很可能會失敗蕉饼。
保持原子性的提交
每次提交的時間盡可能的短玛歌,如當你修改了UI界面支子,完成了功能小細節(jié),確認了bug完善就提交代碼瓤的。
不要提交本地配置文件吞歼,自動生成的文件,自己不明白的文件
本地環(huán)境因人而異稽坤,因此就有了不同的配置文件尿褪,緩存生成文件等,在提交的時候顿仇,盡可能檢查提交的內(nèi)容是否是包含了類似不必要的文件摆马。
注釋規(guī)范
每次提交必須書寫明晰的標注
在項目中,如果沒有注釋囤采,會導(dǎo)致管理人員不能清晰的把握每次的項目提交的概要蕉毯,bug管理與文件不對稱,難以掌控項目的進展等問題进肯,因此建議填寫注釋褐着,同時不能填寫一些無效含蓉,無用的信息。填寫好的注釋應(yīng)該是能概要的描述所提交的文件的基本功能的信息斟赚,也建議使用下面的規(guī)范差油。
注釋規(guī)范寫法蓄喇,提交前加注釋標簽
- Todo: 任務(wù)清單
對于需求性的功能使用todo前綴標簽,如加入經(jīng)紀公司模塊刃鳄,使用類似以下語句:Todo: 增加經(jīng)紀公司模塊 - Bugfix:: bug修復(fù)
對于系統(tǒng)bug,等信息提交前加上bugfix標簽叔锐,如修復(fù)待遇顯示不正確:Bugfix: 修復(fù)期望工資待遇顯示錯誤bug - Junk: 零碎碎片
其他的一些無效的信息修改
Android Studio 使用 SVN 代碼分支管理使用示例
安裝SVN客戶端
添加項目提交管理忽略的文件
- 第一個和第二個是默認存在的愉烙,也就是本地項目工程配置相關(guān)內(nèi)容。保持不變返顺;
- local.properties:一些系統(tǒng)配置勺择,例如SDK位置省核,NDK位置等昆码;
- .gradle:相關(guān)配置文件赋咽;
- .idea:存放項目的配置信息,包括歷史記錄淘钟,版本控制信息等陪毡;
- build:該目錄下有大量臨時文件毡琉,這些文件會在build的時候創(chuàng)建,相當于eclipse的bin目錄慧耍;
- app/src/test:測試文件芍碧;
- .iml:編譯后自動生成号俐,其中內(nèi)容有一些本地信息,不同電腦上會不一致践美。
上傳項目到svn
創(chuàng)建分支
在項目上 右鍵->subversion->branch or tag 進入create branch or tag界面如下:
最終我們看到的分支明細是這樣的:
切換分支 (一定是本地先提交再切換分支)
在項目上 右鍵->subversion->update directory ... 進入update directory 界面如下:
點擊use branch后面的"..."來選擇分支兴革,如下:
如果有多個分支杂曲,點擊第二條("guider...")就可以查看更多分支了擎勘。
分支合并
分支合并的順序一般有幾種
- 功能開發(fā)分支 >合并到測試分支(或者直接合并到主干)
- 線上版本tag1.0 作為線上版本bug 修復(fù)> 合并到主干及分別合并到其他功能開發(fā)分支 一般tag 不允許修改,也可從上線tag 打出一個分支出來作為修復(fù)線上bug 分支 然后進行以上操作合并
- 功能分支之間的合并 常見于我們項目周期不同步煤裙,例如 醫(yī)學(xué)網(wǎng) 自考網(wǎng) 與 會計網(wǎng)不同步功能
合并分支一定是代碼在當前分支 然后進行 從其他分支合并到當前分支來進行操作
如圖我將其他分支合并到該master開發(fā)分支上來
有沖突解決沖突 然后提交即可
還可以這樣操作
一般我們會重復(fù)進行分支合切換 分支合并 解決沖突 提交 合并分支的操作
參考:
- SVN 和 Git 在日常使用中的明顯差異 https://github.com/xirong/my-git/blob/master/why-git.md
- SVN常用命令 http://www.reibang.com/p/c47f2931cba2
- Git代碼管理 http://www.reibang.com/p/acc495c32c4b