`
zccst
  • 浏览: 3322773 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[svn] linux命令——svn分支创建、合并

 
阅读更多
作者:zccst


一、创建分支
1,创建一个分支
svn copy svn://xx.com/repo/trunk svn://xx.com/repo/branches/TRY-something -m 'make branches TRY-something'

2,把工作目录转到分支
svn switch svn://xx.com/repo/branches/TRY-something

当然,也可以再转到主干svn switch svn://xx.com/repo/trunk



二、合并一个分支到主干
1, 查找到分支版本
方法一:cd branch
svn log --stop-on-copy
最后一个r11340就是创建分支时的reversion

方法二:cd trunk
命令:svn -q --stop-on-copy 分支URL,这条命令会查询出自创建分支以后分支上的所有修改,最下面的那个版本号就是我们要找的版本号.
示例:svn log -q --stop-on-copy svn://192.168.1.177/tags/beta_2009_12_24

2, 合并到主干
命令:svn -r 分支版本号:HEAD 分支的URL
解释:HEAD为当前主干上的最新版本
示例:
cd trunk
svn merge -r 12:HEAD svn://192.168.1.177/tags/beta_2009_12_24


解决冲突:
使用svn st | grep ^C 查找合并时的冲突文件,手工解决冲突
使用svn resolved filename 告知svn冲突已解决
使用svn commit -m "" 提示合并后的版本


svn: Aborting commit: '/path/resources/noc' remains in conflict
$ svn revert resources/noc
Reverted 'resources/noc'


三、两个分支合并

两个分支合并可以拆分为一下两步:

第一步:

197从旧主干引出,
186打完tag,表示是新主干

合并最新代码的意思是:将新主干与旧主干比对,并添加到197中。这样197既有自己的新增的代码,也同时有最新线上的代码。
cd 197_Branch
svn merge https://xxx.com/tags/project/project_Old_BL https://xxx.com/tags/project/project_New_BL
svn ci -m 'merge 186 trunk'





第二步:

但是后来,其他人又向186提了代码,所以还需要将186分支(即打了tag后的186,打了tag前的186已是主干)合并至197中。
合并办法:找出186分支,比对与新主干之间的差别,并添加到197中。这样197就有最新的全部代码了。
cd 197_Branch
svn merge https://xxx.com/tags/project/project_New_BL https:/xxx.com/project/branches/project/186_Branch
svn ci -m 'merge 186 branch'




四、发布

给当前主干打个标签,并且这个标签不再改动了,但是实际上标签和分支是一个意思,你可以在标签上继续做改动,但这不推荐。
svn copy svn://xx.com/repo/trunk svn://xx.com/repo/tags/RB-1.0


如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
评论

相关推荐

    linux下svn客户端

    本文将深入探讨Linux下的SVN客户端——SmartSVN,并基于提供的文件信息进行详细解析。 SmartSVN是一款功能强大的图形化Subversion客户端,它提供了一种直观的界面,使得在Linux系统中管理和操作SVN仓库变得简单易行...

    开源版本控制SVN 树冲突、目录丢失问题及解决机制探讨

    例如,如果在一个分支中创建了一个新目录,而在主线中删除了同名目录,那么在合并这两个分支时,SVN无法确定如何处理这个目录,从而导致树冲突。 **目录丢失问题**通常发生在用户误操作后,如直接在工作副本中删除...

    服务器安装文件——SVN

    在这个"服务器安装文件——SVN"的压缩包中,很显然包含的是用于在一台机器上搭建SVN服务器所需的所有组件和指南。 1. **SVN服务器安装**:安装SVN服务器通常涉及到以下几个步骤: - 首先,你需要选择一个操作系统...

    SVN使用手册之SVN-BOOK

    - **版本模型**:SVN支持两种主要的版本模型——基于锁的版本控制和基于合并的版本控制。 - 基于锁的版本控制:在修改文件前需先锁定文件,确保同一时间只有一个用户能够编辑该文件。 - 基于合并的版本控制:允许...

    SVN中文操作手册(Subversion)

    2. **合并**:`svn merge`命令用于合并不同分支的修改,这在多分支开发中非常重要。 ### 五、解决冲突 当多人同时修改同一文件时,可能会出现冲突。SVN会在冲突文件中插入标记,用户需要手动解决冲突后再提交。 #...

    svn服务器配置说明

    7. **源码管理最佳实践**:在使用SVN时,建议遵循一些最佳实践,如合理命名分支,保持提交的原子性,避免合并冲突,以及定期清理本地工作副本。 了解以上基本步骤后,你可以通过提供的博文链接深入学习更详细的配置...

    svn1.9.5.27581和1.9.7.27907安装包及汉化包

    在本压缩包中,包含了两个不同版本的SVN安装包——1.9.5.27581和1.9.7.27907,以及相应的汉化包,这意味着用户可以在中文环境下更方便地使用这个工具。 SVN 1.9.x系列是Subversion的一个稳定版本,提供了许多增强的...

    svn和vss培训资料(打包在一起了有ppt和pdf)

    1. **分支和合并**:SVN允许用户轻松创建分支并进行合并,适合敏捷开发和多人协作。 2. **无锁模型**:SVN采用无锁模型,允许多个用户同时编辑同一文件,通过冲突解决机制处理并发修改。 3. **跨平台支持**:SVN可以...

    史上最浅显易懂的Git教程——廖雪峰

    - **灵活的分支管理**:Git的分支创建和切换非常快捷,这极大地提高了开发效率。 - **离线工作能力**:由于每个开发者的本地仓库都是完整的版本库,因此开发者可以在离线状态下工作。 #### 三、Git的诞生背景 在...

    svn-book

    《版本控制与Subversion》——深入理解SVN的精髓 标题:“svn-book”与描述“subversion电子书”共同指向了一部详尽介绍Subversion(SVN)版本控制系统的重要资源。这部由Ben Collins-Sussman、Brian W. ...

    完整详细图文版 代码管理工具SVN、CVS、CC、VSS、GIT详细使用说明书(最终版本)Eclipse相关(共94页).rar

    本文将为你提供关于五种主流代码管理工具——SVN、CVS、ClearCase(CC)、VSS(Visual SourceSafe)以及Git的详细使用说明。这些工具在软件开发中扮演着至关重要的角色,帮助团队协作、版本控制和追踪代码变更。我们...

    Version Control with Subversion_en

    创建分支非常简单,只需要使用`svn copy`命令即可。合并是将一个分支的更改集成到另一个分支或主干的过程。Subversion提供了一些工具和最佳实践来简化这个过程,例如使用`svn merge`命令来追踪哪些更改已经合并。 #...

    VCS使用中文教程,vcs怎么使用,LINUX源码.zip

    例如,通过`apt source`命令可以下载Linux软件的源码包,用VCS(通常是Git或SVN)管理。 10. **学习资源** 为了更深入地学习VCS,可以参考官方文档、在线教程、以及社区论坛,如Stack Overflow和GitHub上的讨论。 ...

    Git.pdf入门和常用命令

    Linus Torvalds在两周内用C语言自行编写了一个新的分布式版本控制系统——Git,并在一个月内成功将Linux内核源代码迁移到Git进行管理。Git的高效、快速和免费使其迅速成为开源项目首选的版本控制系统。 此后,...

    Unity3D版本管理工具

    4. **版本分支**:利用Git的分支功能,可以为新功能或修复错误创建独立的开发线,完成后合并回主分支。这有助于保持主线的稳定,同时提供了一个安全的试验环境。 5. **定期同步与拉取**:团队成员应定期从远程仓库...

    开源分布式版本控制工具 —— Git 之旅.docx

    Git的分支非常轻量,创建、切换和合并分支都仅仅是在指针上的操作,几乎不占用额外资源。这使得在Git中进行分支管理变得异常简单,支持了更高效的特性开发和错误修复流程。 接下来是Git标签。标签是对特定提交的...

    Git教程.docx _ 学习教程

    - **分支管理**:使用`git branch`、`git checkout`等命令创建、切换和合并分支。 - **合并与冲突解决**:使用`git merge`命令合并分支,并手动解决可能出现的合并冲突。 —— #### 四、Git在前端开发中的应用 ...

    Git版本控制管理 第2版

    - **合并策略**:通常有两种主要的合并策略——合并(Merge)和变基(Rebase)。合并会保留分支的历史记录,而变基则会将分支的提交“重放”到目标分支上,使历史看起来更加线性。 #### 解决冲突 当两个开发者在同...

Global site tag (gtag.js) - Google Analytics