SVN教程——05SVN规范
一.SVN目录结构与作用
我们在第一节讲解创建仓库时遇到了下面这个界面
我们当时是选择的第一个,那么现在我们选择第二个创建一个名为demo2的仓库。这是他的目录结构:
Trunk: 主干目录,此目录下的文件为基准文件
Branches: 用于开发的分支目录
Tags: 用于发布的版本目录
从功能的角度而言,分支与标记没有什么区别,但是在用途上有如下区别:
1、branches下用于存放“分支”,比如用于测试的分支、用于不同版本开发的分支、
用于缺陷处理的分支等等,“分支”下存放的内容是会继续修改的;
2、tags下用于存放“标记”,比如某个发布版本的标记,“标记”下存放的内容通常
来说是固定不变的。
举个例子:我们现在有一个项目Project
,我们上线了1.0
版本,这时我们就可以打一个Tag
,后续我们要开发2.0
(加了新的功能),我们就直接在主干上开一个分支,再次基础上开发即可,得到2.0
版本,我们可以再打个Tag
。
二.分支与标记
>分支的定义规则: Project name+日期时间+功能点
>Tags的定义规则 Project name+版本号
版本号定义为三段数字编号 xxx.xxx.xxx
第一个:革命性的产品升级版 第二个:新功能版 第三个:修正bug
我们先把我们的工程保存到demo2仓库的主干上,细节操作如果忘记了可以参考上一章的内容。提交后目录结构如下:
那么接下来我们开始演示
1.下载主干到用户Tom目录下的trunk目录下
2.打分支(打标记操作是一样的)
我们在trunk
文件夹下面右键,选择TortoiseSVN
下的Branch/Tag...
,
此时目录结构如下:
3.合并主干的内容到分支(注意点:保证主干是最新的(先update),在分支这边进行操作)
首先我们主干的内容进行修改。
在未修改前,Main.java文件内容如下:
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
现在我们将其改为:
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
System.out.println("I am Jack");
}
}
然后提交一下(这一步提交到了主干)
。
接下来在分支目录下checkout一下把分支下下来:
我们知道这时的分支的Main.java的内容与主干的Main.java的内容是不一样的。所以接下来我们把主干
的内容合并到分支
里去。
在branch目录下的SimpleProject目录里面
右键,然后点击TortoiseSVN
,在点击Merge
:
此时合并成功,这时trunk目录下的Main.java
已经合并到了branch目录下的SimpleProject目录下的Main.java
里面(也即此时该文件的内容更新到与主干一致了
),不过注意,在SVN服务器端的分支还没有被更新,我们把branch目录提交就ok了。
上面这里讲解的是主干为最新合并到分支,当然也可以分支最新合并到主干,这个就交给读者了。致此我们的教程讲到这里结束了。
上一篇:SVN教程——04使用IDEA工具操作SVN