`
liuhui998
  • 浏览: 101066 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

svn 使用分支

阅读更多
使用分支

svn switch命令改变存在的工作拷贝到另一个分支,然而这个命令在分支上工作时不是严格必要的,它只是提供了一个快捷方式。在前面的例子里,完成了私有分支的建立,你取出了新目录的工作拷贝,相反,你可以简单的告诉Subversion改变你的/calc/trunk的工作拷贝到分支的路径:

$ cd calc

$ svn info | grep URL
URL: http://svn.example.com/repos/calc/trunk

$ svn switch http://svn.example.com/repos/calc/branches/my-calc-branch
U   integer.c
U   button.c
U   Makefile
Updated to revision 341.

$ svn info | grep URL
URL: http://svn.example.com/repos/calc/branches/my-calc-branch
完成了到分支的“跳转”,你的目录与直接取出一个干净的版本没有什么不同。这样会更有效率,因为分支只有很小的区别,服务器只是发送修改的部分来使你的工作拷贝反映分支。

svn switch命令也可以带--revision(-r)参数,所以你不需要一直移动你的工作拷贝到分支的HEAD。

当然,许多项目比我们的calc要复杂的多,有更多的子目录,Subversion用户通常用如下的法则使用分支:

拷贝整个项目的“trunk”目录到一个新的分支目录。

只是转换工作拷贝的部分目录到分支。

换句话说,如果一个用户知道分支工作只发生在部分子目录,我们使用svn switch来跳转部分目录(有时候只是单个文件),这样的话,他们依然可以继续得到普通的“trunk”主干的更新,但是已经跳转的部分则被免去了更新(除非分支上有更新)。这个特性给“混合工作拷贝”概念添加了新的维度—不仅工作拷贝的版本可以混合,在版本库中的位置也可以混合。

如果你的工作拷贝包含许多来自不同版本库目录跳转的子树,它会工作如常。当你更新时,你会得到每一个目录适当的补丁,当你提交时,你的本地修改会一直作为一个单独的原子修改提交到版本库。

注意,因为你的工作拷贝可以在混合位置的情况下工作正常,但是所有的位置必须在同一个版本库,Subversion的版本库不能互相通信,这个特性还不在Subversion未来的计划里。

切换和更新

你注意到svn switch和svn update的输出很像?switch命令只是update命令的一个超集。

当你运行svn update时,你会告诉版本库比较两个目录树,版本库这样做,并且返回给客户区别的描述,svn switch和svn update两个命令唯一区别就是update会一直比较同一路径。

也就是了,如果你的工作拷贝是/calc/trunk的一个镜像,当运行svn update时会自动地比较你的工作拷贝的/calc/trunk与HEAD版本的/calc/trunk。如果你使用svn switch跳转工作拷贝到分支,则会比较你的工作拷贝的/calc/trunk与相应分支目录的HEAD版本。

换句话说,一个更新通过时间移动你的工作拷贝,一个转换通过时间和空间移动工作拷贝。

因为svn switch是svn update的一个变种,具有相同的行为,当新的数据到达时,任何工作拷贝的已经完成的本地修改会被保存,这里允许你作各种聪明的把戏。

举个例子,你的工作拷贝目录是/calc/trunk,你已经做了很多修改,然后你突然发现应该在分支上修改更好,没问题!你可以使用svn switch,而你本地修改还会保留,你可以测试并提交它们到分支。

refer:http://www.woodpecker.org.cn:9081/doc/2usageBook/subversion/www.subversion.org.cn/svnbook/1.4/svn.branchmerge.switchwc.html
分享到:
评论

相关推荐

    Eclipse svn创建分支、合并、切换讲解

    3. 至此,分支已经创建完毕,可以导出或者使用小乌龟进行查看,主干和分支目前处于同步的状态。 二、切换分支 在开发中,难免会有多个分支,这里有个快速切换分支的功能。打开弹窗,选择刚才创建的分支,点击 OK,...

    svn拉分支合并文档

    "svn拉分支合并文档" SVN(Subversion)是一种开放源代码的版本控制系统,相比RCS和CVS,它采用了分支管理系统。SVN的主要特点是支持分布式版本控制,能够对文件和目录进行版本控制。 svn目录结构: * 每个子系统...

    SVN 拉分支及合并演示

    在团队协作中,SVN 提供了创建分支和合并分支的功能,以便开发者可以在不影响主线开发的情况下进行独立的工作。下面将详细介绍如何在 SVN 中进行拉分支和合并操作。 一、创建仓库 创建 SVN 仓库是团队协作的第一步...

    SVN创建、合并与切换分支操作详解

    在实际开发中,SVN的分支管理策略可以帮助团队有效地组织工作,如使用特性分支进行新功能开发,使用hotfix分支快速修复生产环境的bug,以及使用release分支准备产品的发布。了解并熟练掌握这些基本操作是SVN协同开发...

    SVN分支合并到主干 冲突处理

    本文将详细讲解如何进行SVN分支与主干的合并以及冲突处理,帮助开发者更好地理解和掌握这一核心操作。 ### SVN分支与主干的概念 在SVN中,"分支"和"主干"是两个重要的概念。主干(Trunk)通常代表项目的主要开发线...

    svn创建分支的做法.rar

    一、SVN分支的理解 在SVN中,分支是一种复制主分支(trunk)的方法,这样你就可以在不影响主分支的情况下进行开发。分支就像主分支的一个快照,你可以在这个副本上自由地添加、修改或删除文件,而不会立即影响到主...

    SVN分支机制和开发规范

    二、 SVN分支简介 1、SVN仓库目录结构Repository 2、 结合eclipse创建分支 3、 结合eclipse创建标记tags 三、 合并主干和分支 1、 主干合并分支 2、 分支合并主干 3、 合并发生冲突 情况1:标记冲突,稍后处理。 ...

    SVN使用的分支与合并

    在 SVN 中,我们可以使用 copy 命令来建立一个新的分支。例如,我们可以使用以下命令来建立一个名为 Facebook3 的分支: copy -r HEAD svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook svn://192.168.1....

    ant相关-svn-分支

    当开发者从不同的分支进行开发时,这个任务会确保本地代码与选定的SVN分支同步。同样,如果需要合并分支,可以使用`svn-checkout`任务切换到目标分支。 在自动集成环境中,我们还可能需要设置自动测试和构建的逻辑...

    用SVN分支管理多版本

    ### SVN分支管理多版本知识点详解 #### 一、引言 在软件开发过程中,随着项目的迭代更新,如何高效地管理不同版本之间的代码成为了项目管理中的一个重要环节。Subversion(简称SVN)作为一款广泛使用的版本控制...

    SVN如何建立版本分支

    #### 二、SVN分支的基本操作 ##### 创建分支 在实际操作中,可以使用Eclipse集成开发环境中的SVN插件来创建分支。具体步骤如下: 1. **打开Eclipse**:启动Eclipse IDE。 2. **选择项目**:右键点击需要创建分支...

    SVN分支使用说明

    SVN分支管理使用说明,以图片方式示意一个项目如何创建并管理SVN分支【管理员文件选择错了】

    SVN 分支与合并详解

    下面是对SVN分支与合并的详细讲解。 1. SVN分支创建: 在SVN中,创建分支通常是为了进行长期的特性开发或隔离修复工作。你可以通过`svn copy`命令或者在图形界面工具中选择“创建分支”选项来实现。例如,要从...

    SVN主干和分支操作

    #### 一、SVN分支的基本概念 在软件开发过程中,版本控制系统(Version Control System, VCS)是必不可少的工具之一。Subversion(SVN)作为一款流行的集中式版本控制系统,被广泛应用于项目管理之中。在SVN中,有...

    svn分支管理

    "svn分支管理详解" svn分支管理是版本控制系统中的一种常用技术,用于管理项目的不同版本和变更。通过创建分支,可以让开发者在不影响主干的同时,进行新功能的开发和测试。在本文中,我们将详细介绍svn分支管理的...

    svn分支合并基本操作

    - 在分支目录中,编辑 `Test.txt` 文件,保存更改后,使用 SVN Commit 提交到分支。 6. **合并分支到主干** - 进入主干目录,右键选择 Merge,指定要合并的分支及其版本范围,通常选择从分支创建时的版本到当前...

    SVN分支的创建与合并

    SVN 分支的创建与合并 SVN 分支是一种版本控制系统的特性,允许开发者将不同的修改分离出来,放在开发品的一个分割线上。这条线被称为分支。分支经常被用来试验新的特性,而不会对开发有编译错误的干扰。当新的特性...

    SVN分支与合并【超详细的图文教程】

    SVN分支的意义: 简单说,分支就是用于区分开发版本与当前发布版本的。  1、 主干负责新功能的开发  2.、分支负责修正当前发布版本的bug(对于可以放入下个发布版本的改进性bug可以直接在主干上开发)  3.、...

Global site tag (gtag.js) - Google Analytics