svn分支的使用

来源:互联网 发布:网站结构图制作软件 编辑:程序博客网 时间:2024/05/03 01:50

svn主干、分支的创建,本例将完成一个实例:

1.svn主干、分支的创建:

svn服务器创建一个版本库svnbranch

check out到本地

创建文件夹trunk(主干),branches(分支)

在trunk主干路径下,创建一个文件夹项目project2,在其中创建文件a.txt,并提交

在trunk/project2文件夹上右键:
→TortoiseSVN
→Branch/tag…

选择分支路径:branches/project2
选择版本:HEAD revision in the repository

创建成功以后,可以svn up到 branches/project2 目录到本地:

2.主干同步到分支:

修改 trunk/project2中的文件a.txt,并提交

在 branches/project2文件夹上右键:
→TortoiseSVN
→Merge…

选择合并类型:Merge a range of revisions

URL to merge from:写上trunk/project2主干路径
Revision range to merge:点击Show log可以查看要合并来的主干版本,并填写正确

可以选择Test merge来测试合并是否可以成功

如果出现错误:SVN Error: Unreadable path encountered; access denied;
需要在svn服务器上加上如下设置:

在svnserve.conf中设置 anon-access = none

最后点击OK,主干trunk/project2修改合并到分支branches/project2成功

2.分支同步到主干:

在分支branches/project2中增加一个文件_a.txt,并提交

先svn up 主干路径:trunk/project2
再在trunk/project2文件上右键:
→TortoiseSVN
→Merge…

选择合并方式:Reintegrate a branch

From URL:选择branches/project2分支路径

点击OK,分支branches/project2合并到主干trunk/project2成功

3.三种合并选择(转):

Merge a range of revisions(合并一个范围的版本)
此类型应用最为广泛,主要是把分支中的修改合并到主干上来。在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本。
合并的源URL填写的是要合并的分支的URL,待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分支当前最新版本的所有演变。如果只是选择其中一个版本,或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。如果只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不被采纳。

Reintegrate a branch(复兴合并)
复兴合并可以理解为是第一种合并类型的一种特例,在复兴合并中,主干可以理解为是自从开创分支之后没有任何修改,而分支是经过修改的,而且合并中分支是没有版本选择的。经过复兴合并,分支中所有的修改都会合并到主干中,合并的结果将使得分支和主干一模一样,从而可以删除分支。

Merge two different trees(合并两个不同的树)
    此类型与前两种类型不同,第一种类型可以选择分支合并的版本,主干不能选择版本;第二种类型是主干和分支都不能选择合并的版本;而这种类型则是无论是主干还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并。合并的时候以选择的分支版本为主,如果选择的主干版本与分支版本有不同的地方,合并时主干部分将被放弃。
起始URL:选择主干目录的URL(应当和当前工作副本的URL一致,这个是所谓的合并点)
结束URL:选择要合并的分支的URL。
起始和结束的版本:一般起始版本应当找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点。

0 0
原创粉丝点击