svn 创建分支、切换分支 及 合并分支 操作

关联远程仓库:

右键  ---  点击 ‘ SVN Checkout...‘

生成

打开trunk目录,在trunk目录下新建两个文本文件A.java,B.java:

打开A.java输入以下内容:

B.java文件可以随机输入些,本例中主要用于观察后续是否变化。

两个文件编辑完成后使用SVN Commit将更改提交到SVN:

下面开始创建分支:

  1、在trunk上点击右键,在TortoiseSVN菜单中选择Branch/Tag;

  2、在To path输入框中输入新建分支的路径,一般是:/branches/分支名,也就是相当于分支保存的路径名;

  3、在下面选择HEAD revision in the repository,为当前SVN中trunk目录下最新的代码建立分支,如果需要为制定的revision建立分支,可以进行选择;

  4、点击OK分支建立完成。

  打开branches目录,发现目录依然为空,没有刚才建立的分支,这是因为分支建立的操作是在服务器端完成的,当需要编辑分支时,在branches目录点击Update,刚才建立的分支就会下载下来。

  建立分支的过程会非常的快,不会因为主干中的文件多而降低速度,原因后续说明。

  

  注:分支创建成功后,远程仓库可以查看到分支目录,本地仓库(branches)中不生成新的目录,需要 Update 下来

使用TortoiseSVN合并分支

  在实际工作中,有可能存在主干、分支并行开发的情况,下面我们模拟一下。

  将刚才新建的分支Update下来,打开分支中的A.java,对其进行编辑如下:

  

  在打开trunk主干中的A.java,对其进行编辑如下:

  

  对以上两个文件的改动基本上模拟了分支、主干并行的情况,两个目录下的同一个文件被分别修改。

  将以上两个文件的改动Commit,下面进行合并操作。

下面开始合并分支到主干:

  1、在trunk上点击右键,在TortoiseSVN菜单中选择Merge;

  2、在弹出的窗口中选择第二项,可以理解为合并两个树;

  

  3、在From和To中都选择要合并的分支目录;

  4、在From的Revision选择创建分支时的那个Revision,具体就是点击Show log,选择最下面那一条;

  5、在To的Revision选择HEAD Revision,也就是最新操作;

  

  6、点击Next,下一个页面使用默认项,点击Merge;

  

  7、合并完成。

  这时候会发现trunk目录下的文件已被修改,这时候的合并操作是在本地完成的,并没有提交到SVN,这与分支建立时有区别,请注意。

  也就是说如果你在本次合并中发现问题,只需要对trunks目录Revert,放弃本次合并即可。

  可以看一下trunk目录合并后的A.java文件,大家与前面对照下,已达到我们想要的合并效果:

  

创建分支时发生了什么

  SVN服务器在创建分支时的拷贝是非常有效率的,瞬间就可以完成,并且只需要很少的空间来存储,所以不需要担心分支建立过多导致项目仓库膨胀的问题。

  可以理解为SVN在服务器中存储的是文件的引用,而非物理上的拷贝。

不要多次合并同一个分支到主干

  合并分支有一个原则,就是不要对一个分支多次合并到主干,虽然你有可能在合并后又对分支进行了修改,之所以这样说是有原因的。

  上面提到在合并分支时,在From的Revision选项中需要选择合并的起始版本,如果是第一次合并只需要选择最早的那个版本即可,但如果合并过一次,你真的能记得你上次合并时最后的Revision是多少吗?

  良好的操作是合并后新建分支。

合并主干到分支

  其实合并是个可逆的过程,合并主干到分支与合并分支到主干正好是相反的操作,大家如果会了一种另一种应该非常简单。

时间: 2024-11-10 14:48:22

svn 创建分支、切换分支 及 合并分支 操作的相关文章

svn merge当主干修改后合并分支

例如版本r1的主干创建分支r2,在r2上修改后得到r3,r1之后也修改得到r4,现在合并分支到主干上: 如果r3的修改和r4有冲突会提示出现冲突,因此不用担心主干合并后会被分支操作覆盖,因为这并不是简单地将分支操作重做一遍,会检查之前主干的操作会不会发生冲突. 如果没有冲突,直接合并成功. 注意不能重复合并,因为svn会记录合并过程.例如以上操作合并后的r5主干上再进行分支r3的合并,实际没有改动. 建议尽量少地使用分支,分支使用时间越长越容易出现冲突,尽量使用短时间内可以完成的分支.

git 创建、切换和提交新分支

查看本地分支 git branch 创建新的分支 git branch <newBranch> 切换分支 git checkout <branchName> 创建并切换分支 git checkout -b <newBranch> 提交本地分支到远程 git push origin <branchName> 原文地址:https://www.cnblogs.com/fanqshun/p/10292379.html

git入门:创建合并分支 解决冲突 分支管理策略

分支创建与合并 理解:相当于创建多一个与现在一模一样的平行时空 在这基础上继续干活 但其实并不会影响到当前时空 ,合并时再决定A时空并入B时空 还是B 时空并入A和空 查看分支 git branch; 创建分支 git branch '分支名' 切换分支 git checkout '分支名' 创建加切换 git checkout -b '分支名' 合并某分支到当前分支 git merge '分支名' 删除分支 git branch -d '分支名 解决冲突 假设现在有主分支(master) 和

git与eclipse集成之创建及切换个人本地分支

创建个人本地特性分支,并进行编码 弹出选择分支的窗口,选择要切换的个人特性分支(备注:根据远程个人特性分支创建本地个人特性分支) 点击OK,Branch name:分支名称与远程分支名称相同,不需要修改.默认勾选Checkout new branch,即创建完分支后,并切换到该分支. 点击finish,完成个人本地特性分支的创建. 从工程名可以看到已经切换到新创建的本地个人分支 从Branches/Local可以看到本地多了一个新分支,并且已经切换到该分支 从References可以看到HEAD

SVN创建分支/合并分支/切换分支

SVN创建分支/合并分支/切换分支 转载自:http://www.cnblogs.com/andy2simple/p/5386256.html 在建立项目版本库时,可首先建好项目文件夹,并在其中建立trunk, branches, tags三个空的子目录.这样在trunk中开始进行开发 trunk是主分支,是日常开发进行的地方. branches是分支.一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中.又比如为不同用户客制化的版本,也可以放在分支中

Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突

Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突 这篇是接着上篇分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目讲的,上篇主要是说用GUI来图形化界面操作,但是一般我们程序员也不会这么干,用命令又轻松又愉悦,所以,这里我就再开了一篇来专门说一下纯命令是怎么去操作的,但是要注意哦,其实廖雪峰老师的网站就是非常赞的学习资源哦! 廖雪峰老师:http://www.li

windows 下svn 创建分支 合并分支 冲突

我用的系统是win7+Subversion 1.7.4.服务器搭建就略过了,我也是从网上找的,基本上就是几个命令吧!我用的CentOs6.5 .网上找了几个命令搭建很快,基本上是: 1.# sudo yum install subversion 2.# sudo mkdir -p /subroot 3.# sudo svnadmin create /subroot 4.# sudo vi /subroot/conf/authz 尾部加 [/]dan=rww=r 5.# sudo vi /subr

svn在Eclipse中进行创建、合并分支--图形化界面

一般svn代码库目录结构有: branches(分支) tags(标签) trunk(开发主干) 从主干上创建分支 右键点trunk ->TortoiseSVN->BranchTag To path 你创建Branch/Tag的路路径Create copy in the repository from:(从仓库生成副本) HEAD revision in the repository(从最新的Revision创建,一般用这个) Specific revision in repository(指

[No000098]SVN学习笔记5-分支,合并,属性,补丁,锁,分支图

行结束符和空白选项 在项目的生命周期中,有时可能会将行结束符由 CRLF 改为 LF,或者修改一段代码的缩进.不幸的是这样将会使大量的代码行被标记为已修改,尽管代码本身并没有被修改.这里列出的选项将会在比较差异 和应用补丁时帮助你应对这些修改.你将会在合并和追溯对话框中看到这些设置,它们同样也出现在TortoiseMerge 的设置中. 忽略行结束符 排除仅行结束符的差异. 比较空白 将所有缩进和行内空白差异视为增加/删除的行. 忽略空白修改 排除那些完全是针对空白数量或类型的修改,例如,修改缩