`

SVN分支详解

svn 
阅读更多

http://sunjun041640.blog.163.com/blog/static/2562683220119189950865/?suggestedreading&wumii

 

在项目目录下有三个目录
a) trunk--------主干, 线上环境运行的就是这个代码.
b) branches----分支, 仅限开发, 合并使用. 通常是以项目名字命名子目录,一般在aone上新建的小需求时,aone就会自动新建分支.
c) tags---------标记 aone一般用来合并发布当天所有和这个代码模块相关的小需求代码,然后统一进行编绎

我们接触最多的是branches,branches开发工程师可以申请读写权限,trunk我们是没有写权限的,只有读权限。
常用SVN命令:

最全的还是使用svn help命令
在命令行中输入svn help,会显示svn 的所有子命令及全局参数;
在命令行中输入svn help commond 会显示commond 的使用方法及参数; 如svn help ci

1.新拉分支命令:

应用场景:
a.当有代码模块有新的发布时,主干上有更新,需要从主干上新拉分支,将当前开发分支的代码合并到新的分支上去,以保持开发分支上的代码与主干是一致
b.当有新的功能点要开发,而不想与其它功能点在一起互相影响,需要从主干上新拉分支
*命令格式:*svn copy trunk_url branch_url -m "comments"
执行路径:在命令行的任意路径执行均可
参数说明:
trunk_url:一般是从主干上新拉分支
branch_url:分支地址 分支的命令方式,一般是日期_分支功能点_num 当然,这个名字很灵活了,最好的是能让人一眼看出这个分支是做什么功能点用的,num是1 2 3 。。。
*例如:*给测试同学测试多域名分支用的拉分支命令:
svn copy apath bpath -m "reason"

2.从svn 中检出代码到本地工作空间

应用场景:需要在本地跑应用,或是查看代码,你懂的。
命令格式:svn co URL[@REV]... [PATH]
执行路径:在本地想要存放代码的路径中执行
参数说明:
URL[@REV]:想要检出的代码URL路径 REV是版本号,如果不写REV,则默认检出最新代码
PATH:如果不写Path,则url的最后一段将作为文件夹名称(分支名称)
例如:将分支20110805_test_multi-domain_1的代码co到本地 当前路径:
svn co xxxxxxxx .<这里有个点哟>


3.查看svn 提交记录:

应用场景:需要查看指定分支的修改记录
命令格式:
svn log [PATH] 显示本地 PATH (默认: ".") 的日志信息。默认的版本范围是 BASE:1
svn log URL[@REV] [PATH...] 显示 URL 中 PATH (默认: ".") 的日志信息。默认的版本范围是 BASE:1
执行路径:如果没有PATH参数 ,则需要在本地工作拷贝所在路径执行; 如果指定了URL,在任意路径均可执行
*有个特别的参数:--stop-on-copy:*日志一直打到当前分支从日志主干上拉下来为止,这个很有用的哟
-l num :看num条
-v:查看每条修改记录中,都有哪些文件改动过了
例如:查看分支20110802_68007_multi-domain_7从分支开始创建到最新代码之前所有的日志
svn log http://svnxxxxxxxx --stop-on-copy

查看分支20110802_68007_multi-domain_7的最新三条日志
svn log http://svn.xxxxxxx -l 3

查看分支20110802_68007_multi-domain_7的最新一条日志,并查看都有哪些文件被修改过了
svn log http://xxxxxxx -l 1 -v


4.合并代码命令:

例如:
svn merge -r 32129:head http://svn.xxxxxxx --dry-run

执行路径:想要合并到的目标分支所co到本地的路径
如想将xxxxxxxx上的32129到最新版本的所有修改合并到bbbbbbbbbb上,本地先将 20110805_test_multi-domain_1的代码co到${user.home}/work/intl-iris下,然后, 在${user.home}/work/intl-iris下运行svn merge 命令

有个特别的参数:--dry-run,就是预合一下,并未真正的将改动合并到本地,一般可以使用这个命令查看一下有哪些文件会合并进来,有没有冲突的文件
如果不加--dry-run,则改动合并到本地工作拷贝了
5.查看当前工作拷贝有哪些修改:

命令格式:svn st [PATH...]
如果不指定path,则是查看当前目录与svn上最新代码相比较的修改,如果指定path,则查看指定路径下的修改。

执行路径:当前工作拷贝路径下

6.提交修改的代码:

命令格式:svn ci -m 'comments' [PATH...]
提交代码时,一定要写comments,以说明这次是什么修改,如果是合并代码的提交,要按如下格式书写:
Merging 20110802_68007_multi-domain_7 r32130 through r33590 into 20110805_test_multi-domain_1
含义即为:20110802_68007_multi-domain_7这个分支上r32130 到 r33590 的修改合并到了分支20110805_test_multi-domain_1上

如果不指定path,则将当前目录下的所有修改提交到SVN
执行路径:如果指定绝对path,则可以在任意路径下执行,如果不指定path,或是指定的是相对路径,则需要在工作拷贝路径下执行。

请注意,如果是想要合并代码,如果有staus为C(冲突)的,测试同学一定要联系开发同学帮助合并,解决冲突。因为状态为conflict时,svn 是不允许提交的

同时,请养成一个习惯,先从svn库上更新最新的代码 (svn up),再提交,以免提交时,出现冲突
7.将冲突标记为解决:

命令格式:svn reloved [path...]
将冲突的文件标记为解决,svn 在收到这个命令后,会将本地因冲突产生的三个新文件删除。如果不指定Path ,会将当前目录及子目录下所有冲突状态的文件标记为解决

切记:提交前,如果工作空间下有冲突的文件,一定要先解决冲突,再将文件标记为己解决,最后再提交
8.切换分支:

命令格式:svn sw url
切换到指定分支中,在切换时,本地的修改不会丢失,但是svn 地址会切换到新路径下

*执行路径:*本地工作拷贝路径,如果不在正确的路径运行该命令,会失败的
例如:svn sw http://xxxxxxxxx

分享到:
评论

相关推荐

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

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

    SVN 分支与合并详解

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

    用SVN分支管理多版本

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

    svn分支管理

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

    svn 合并、冲突及常用功能详解

    `svn merge`是Subversion(简称svn)中的关键命令,用于将一个分支或标记的修改合并到另一个分支。在版本控制系统中,合并是协同开发的核心操作,它允许团队成员同步各自的工作,避免代码冲突。以下是一些关于`svn ...

    SVN分支与合并

    SVN分支与合并,从创建分支到合并分支,步骤图文详解

    SVN中的Branches分支以及Tags标签详解与应用举例

    SVN 中的 Branches 分支以及 Tags 标签详解与应用举例 SVN(Subversion)是一款版本控制系统,广泛应用于软件开发中。它可以帮助开发者管理和控制代码的版本。SVN 中有两个重要的概念:Branches 分支和 Tags 标签。...

    SVN主干和分支操作

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

    SVN分支及合并使用文档.doc

    《SVN分支及合并使用详解》 版本控制系统Subversion(SVN)是软件开发中不可或缺的工具,尤其在团队协作中,分支与合并是其核心功能。本文将深入解析SVN的分支创建、管理和合并过程,帮助开发者更好地理解和运用这...

    window搭建SVN服务器详解

    - **分支与合并**:利用SVN的分支和合并功能,支持多线程开发,避免代码冲突。 - **钩子脚本**:通过配置钩子脚本,可以在提交时自动执行某些任务,如代码质量检查。 总的来说,搭建Windows SVN服务器并不复杂,...

    SVN使用的分支与合并

    SVN 分支与合并详解 SVN(Subversion)是一款开源的版本控制系统,广泛应用于软件开发、文档管理和其他需要版本控制的领域。在软件开发过程中,SVN 的分支与合并功能是非常重要的,下面我们将详细介绍 SVN 中的分支...

    Linux下搭建svn服务器详解

    【Linux下搭建svn服务器详解】 在Linux环境下搭建SVN(Subversion)服务器是开发者和团队协作中的常见任务,因为SVN是一种强大的版本控制系统,能够帮助管理和跟踪代码的更改历史。以下将详细介绍如何在Linux上设置...

    SVN版本管理详解-08210246.pdf

    在SVN中,分支用来创建项目的不同线性历史记录,它们允许在不影响主线(主分支)的情况下独立开发新特性。合并是将分支上的更改重新整合到主分支的过程。分支间拷贝修改和转换工作副本是常用的场景。 版本库管理...

    SVN分支合并经验总结

    ### SVN分支合并经验总结 在软件开发过程中,版本控制系统如Subversion(SVN)是团队协作不可或缺的工具。其中,分支管理和合并策略是确保代码质量和维护项目稳定性的重要环节。本文将深入探讨在SVN中进行分支合并...

    svn配置

    总结起来,“svn配置”涉及到客户端安装、仓库的获取与管理、版本控制操作、分支与标签的使用、权限管理和自动化脚本等多个方面。理解和熟练掌握这些知识点,能够帮助开发者更高效、安全地进行团队协作和项目管理。...

    svn安装及详解

    **Subversion(SVN)安装及详解** Subversion(简称SVN)是一种版本控制系统,用于管理文件和目录的变更历史,特别适用于多人协作的软件开发项目。它允许开发者跟踪和控制代码的修改,同时提供了冲突解决机制,确保...

Global site tag (gtag.js) - Google Analytics