TortoiseSVN创建/合并分支

1. 创建分支

  A.打开分支创建对话框

    选中项目文件夹->鼠标右键->TortoiseSVN->Branch/tag…

  B.设置分支信息

  1) SVN服务器上分支创建的相对路径

  2) 根据相对路径拼接出来的SVN服务器全路径

  3) 对于新建分支的说明(里面记述创建分支的原因等)

  4) 需要拷贝的源版本信息

  选项一:代码库中的最后一个版本

  选项二:代码库指定版本,默认为本地获取时的版本号

  选项三:当前工作区的代码内容个,这部分包含了代码获取后未提交的修改

2. 使用分支代码

  Checkout所需获取的分支代码,然后基于这个本地副本你可以进行编辑修改工作。

3. 合并分支

  场景:在Branch_Test1中发生了文件的新建、修改、删除,现在需要将Branch_Test1中内容合并到Branch_Test2中。

  A.合并准备

  为了降低合并风险,在合并操作开始之前应该确保本地接受合并的基版本中发生的修改已经全部提交。

  B.打开合并分支对话框

    选中需要合并的主版本->鼠标右键->TrtoiseSVN->Merge…

  C.合并操作

  1) 选择合并模式

  通常我们使用选项一,为了方便学习,对两个选项的说明如下:

  选项一:合并一个范围的版本,主要是把分支中的修改合并到主干上来。

  选项二:合并两个不同的树,这种类型的合并,无论主干还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并。

  2) 设置合并范围(合并一个版本范围)

  • 要合并的分支在SVN服务器上的来源
  • 合并版本的选择

    选项一:所有未合并的版本全部进行合并

    选项二:指定的版本范围,“-” 表示选择范围,“,”进行多个范围拼接。如果勾选CheckBox,则表示要将文件还原到早起版本。

    注:SVN会记录你已经合并过的版本,所以合并时一定注意是要合并还是要还原。合并时指定版本序号必须大于上次合并过的最大版本号;还原时指定版本序号必须小于上次合并过的最大版本序号。

  • 合并后的内容保存在本地的路径

  3)设置合并范围(合并一个版本范围)

  • 主干的SVN服务器地址(改地址应与本地工作副本的SVN服务器地址一致),以及要合并的主干版本
  • 分支的SVN服务器地址,以及要合并的分支版本
  • 本地工作副本的存放路径

  4)合并深度设置

通常默认的设置就可以,下面为了便于使用对各选项进行说明

    l  合并深度

    • 参造当前本地的工作副本
    • 全递归,检出完整的目录树:包含所有的文件和子目录
    • 直接子节点,包含文件夹:检出目录,包含其中的文件或子文件夹,但不递归展开子文件夹。
    • 仅文件子节点:检出指定目录,包含所有文件,但是不检出仁和子文件夹。
    • 仅此项:只检出目录。包含其中的文件或文件夹。

    l  对于行结束符与空白符的处理

    • 忽略祖先:如果在分支上有一个文件曾经被删除过,后来又加了一个同文件名的文件,那么在merge的时候svn会识别到这两个文件不是同一个祖先而直接覆盖旧文件增加新文件。而实际上我是要对这两个不同祖先的文件进行合并的,这个时候就需要使用ignore ancestry 这样SVN的处理就会变成合并文件差异,而不是删除再覆盖 
    • 忽略行结束符:排除仅行结束符的差异
    • 比较空白符:将所有缩进和行内空白差异视为增加/删除行    
    • 忽略空白符的变化:排除哪些完全是针对空白数量的修改。但在原来没有空白的地方增加空白或删除全部空白仍然会被视为修改  
    • 忽略所有空白符:排除仅空白改变的差异

    l  其他选项

    • 强制合并:如果本地有个文件不受版本控制,在其中我们有修改一些内容。而在分支上进行了添加并删除。如果勾选强制合并,这个文件将被删除,所有本地修改将丢失。
    • 只记录合并(阻止这些版本将来被合并):选择此项意味着并没有实际的合并动作,只是将分支的指定版本标记为已发生合并,以后再发生合并时,系统自动过滤掉已合并过的版本。
    • 做整合而不是自动合并

  5)完成合并

确认合并后,SVN会自动将本次合并的日志输出,如果有冲突需要解决,和我们Update时的处理方式是一致的。

  D.确认提交

  在完成合并操作后,代码只是在本地副本中完成了合并,最后还需要人工将合并后的代码提交SVN代码库。

时间: 2024-10-05 08:19:45

TortoiseSVN创建/合并分支的相关文章

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

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

Git:初始化项目、创建合并分支、回滚等常用方法总结

Git 初始化项目 创建新的Git仓库 echo "# git_project" >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/cjunn/git_project.git git push -u origin master 提交记录 git add . 或者 git add test

SVN与TortoiseSVN实战:TortoiseSVN新建及合并分支

硬广:<SVN与TortoiseSVN实战>系列已经写了两篇,第一篇<SVN与TortoiseSVN实战:从入门到精通>,关于分支和标签的知识介绍可翻阅第二篇<SVN与TortoiseSVN实战:标签与分支>,本篇重点通过例子讲解TortoiseSVN新建及合并分支的实际操作. 先提示一下,网上大部分关于分支合并的讲解都是错的,对于其他资料请谨慎,本文本着科学严谨的精神,确保讲解正确. 我这里已经新建好一个SVN项目仓库,并按照第二篇介绍的标准项目仓库的目录结构新建好t

使用TortoiseSVN新建及合并分支图文教程

打开trunks目录,在trunks目录下新建两个文本文件A.java,B.java: 打开A.java输入以下内容: B.java文件可以随机输入些,本例中主要用于观察后续是否变化. 两个文件编辑完成后使用SVN Commit将更改提交到SVN: 下面开始创建分支: 1.在trunks上点击右键,在TortoiseSVN菜单中选择Branch/Tag; 2.在To path输入框中输入新建分支的路径,一般是:/branches/分支名,也就是相当于分支保存的路径名; 3.在下面选择HEAD r

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

关联远程仓库: 右键  ---  点击 ' SVN Checkout...' 生成 打开trunk目录,在trunk目录下新建两个文本文件A.java,B.java: 打开A.java输入以下内容: B.java文件可以随机输入些,本例中主要用于观察后续是否变化. 两个文件编辑完成后使用SVN Commit将更改提交到SVN: 下面开始创建分支: 1.在trunk上点击右键,在TortoiseSVN菜单中选择Branch/Tag; 2.在To path输入框中输入新建分支的路径,一般是:/bra

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(指

tortisegit 创建分支和合并分支

第一步:创建本地分支 点击右键选择TortoiseGit,选择Create Branch-,在Branch框中填写新分支的名称(若选中"switch to new branch"则直接转到新分支上,省去第二步),点击OK按钮: 第二步:通过"Switch/Checkout"切换到新创建的分支上,点击OK: 第三步:在新分支下执行PUSH操作,在对话框中保持远程分支为空白,点击OK,则将在远程创建了新的分支(在PUSH的时候远程服务器发现远程没有该分支,此时会自动创建

GIT 分支管理:创建与合并分支、解决合并冲突

分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN! 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险. 现在有了分支,就不用怕了.你

创建与合并分支-git入门教程

在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支. 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点: 每次提交,master分支都会向前移动一步,这样,随着你不断提交,m