协同开发中SVN使用

概述

本次SVN提交规范主要针对当前项目中出现的SVN管理难,开发流程控制难掌控,项目进度记录不准确等问题而提出。

规范

目标,要求

要求每个角色都要进行规范化SVN作业。

目录结构与开发模式

分散式分支开发模式原理
     Svn://project/
                                           +trunk/(主开发目录)
                                           +branches/(分支开发目录)
                                                                                +dev_1.0_function1(功能性分支1)
                                                                                +dev_2.0_function2(功能性分支2)
                                                                                …
                                           +tags(存档目录,不允许修改)
  • 1.0的开发,做一个dev_1.0的功能性分支

    Svn://project/                                                                  
                                             +trunk/(不承担开发任务)
                                             +branches/
                                                                                  +dev_1.0_function1
                                             +tags
    
  • 1.0功能开发完成,合并分支到主干

    Svn://project/                                                                  
                                             +trunk/(merge from branch dev_1.0_function1)
                                             +branches/
                                                                                  +dev_1.0_function1(开发任务结束,冻结)
                                             +tags
    
  • 测试完成,根据主干做一次1.0的tag

    Svn://project/                                                                  
                                             +trunk/(merge from branch dev_1.0_function1)
                                             +branches/
                                                                                  +dev_1.0_function1(开发任务结束,冻结)
                                             +tags
                                                                                  +tag_release_1.0(copy from trunk)
    
  • 1.0版本结束,做下一个版本的开发2.0

    Svn://project/                                                                  
                                             +trunk/(merge from branch dev_1.0_function1)
                                             +branches/
                                                                                  +dev_1.0_function1(开发任务结束,冻结)
                                                                                  +dev_2.0_function2(2.0的开发)
                                             +tags
                                                                                  +tag_release_1.0(copy from trunk)
    
  • 1.0版本出现bug,直接在dev_1.0版本上修复

    Svn://project/                                                                  
                                             +trunk/(merge from branch dev_1.0_function1)
                                             +branches/
                                                                                  +dev_1.0_function1(bugfix)
                                                                                  +dev_2.0_function2(2.0的开发)
                                             +tags
                                                                                  +tag_release_1.0(copy from trunk)
    
  • 选择性的进行代码合并

    1,在dev_1.0版本上修复完成后需要同步合并代码到其他的开发分支上去
    2,需要合并到主干然后重新打包上线一个版本用于修复线上紧急bug
    

使用规范

命名规范
  • 分支名称采用固定名称与下划线结合方式进行功能性分支描述如:dev_1.0_crm。
  • 存档名称统一采用tag_release_版本的方式。
提交规范
提交之前先更新

在每次提交文件的时候,先进行必要的更新操作,因为,有可能在你修改文件的期间,别人也修改了同样的文件,那么本次的提交很可能会失败。

保持原子性的提交

每次提交的时间尽可能的短,如当你修改了UI界面,完成了功能小细节,确认了bug完善就提交代码。

不要提交本地配置文件,自动生成的文件,自己不明白的文件

本地环境因人而异,因此就有了不同的配置文件,缓存生成文件等,在提交的时候,尽可能检查提交的内容是否是包含了类似不必要的文件。

注释规范
每次提交必须书写明晰的标注

在项目中,如果没有注释,会导致管理人员不能清晰的把握每次的项目提交的概要,bug管理与文件不对称,难以掌控项目的进展等问题,因此建议填写注释,同时不能填写一些无效,无用的信息。填写好的注释应该是能概要的描述所提交的文件的基本功能的信息,也建议使用下面的规范。

注释规范写法,提交前加注释标签
  • Todo: 任务清单
    对于需求性的功能使用todo前缀标签,如加入经纪公司模块,使用类似以下语句:Todo: 增加经纪公司模块
  • Bugfix:: bug修复
    对于系统bug,等信息提交前加上bugfix标签,如修复待遇显示不正确:Bugfix: 修复期望工资待遇显示错误bug
  • Junk: 零碎碎片
    其他的一些无效的信息修改

Android Studio 使用 SVN 代码分支管理使用示例

安装SVN客户端

添加项目提交管理忽略的文件

image.png
  • 第一个和第二个是默认存在的,也就是本地项目工程配置相关内容。保持不变;
  • local.properties:一些系统配置,例如SDK位置,NDK位置等;
  • .gradle:相关配置文件;
  • .idea:存放项目的配置信息,包括历史记录,版本控制信息等;
  • build:该目录下有大量临时文件,这些文件会在build的时候创建,相当于eclipse的bin目录;
  • app/src/test:测试文件;
  • .iml:编译后自动生成,其中内容有一些本地信息,不同电脑上会不一致。

上传项目到svn

image.png
image.png
image.png
image.png

创建分支

在项目上 右键->subversion->branch or tag 进入create branch or tag界面如下:


image.png

image.png

最终我们看到的分支明细是这样的:


image.png

切换分支 (一定是本地先提交再切换分支)

在项目上 右键->subversion->update directory ... 进入update directory 界面如下:


image.png

点击use branch后面的"..."来选择分支,如下:


image.png

如果有多个分支,点击第二条("guider...")就可以查看更多分支了。


image.png

分支合并

分支合并的顺序一般有几种

  • 功能开发分支 >合并到测试分支(或者直接合并到主干)
  • 线上版本tag1.0 作为线上版本bug 修复> 合并到主干及分别合并到其他功能开发分支 一般tag 不允许修改,也可从上线tag 打出一个分支出来作为修复线上bug 分支 然后进行以上操作合并
  • 功能分支之间的合并 常见于我们项目周期不同步,例如 医学网 自考网 与 会计网不同步功能

合并分支一定是代码在当前分支 然后进行 从其他分支合并到当前分支来进行操作

如图我将其他分支合并到该master开发分支上来


image.png

image.png

有冲突解决冲突 然后提交即可

还可以这样操作


image.png
image.png

一般我们会重复进行分支合切换 分支合并 解决冲突 提交 合并分支的操作

参考:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,123评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,031评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,723评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,357评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,412评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,760评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,904评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,672评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,118评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,456评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,599评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,264评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,857评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,731评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,956评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,286评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,465评论 2 348

推荐阅读更多精彩内容