Blogger Information
Blog 63
fans 2
comment 0
visits 162878
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
SVN使用指南
书声的博客
Original
1250 people have browsed it

SVN的目录结构

trunk 主干
branches 分支
tags 标记

默认情况下都是小写

SVN的工作机制在某种程度上就像一颗正在生长的树:
一颗有树干(trunk)和许多分支(branches)的树
分支从树干生长出来,并且细的分支从相对较粗的树干中长出
一棵树可以只有树干没有分支(但是这种情况不会持续很久,随着树的成长,肯定会有分支啦,^^)
一颗没有树干但是有很多分支的树看起来更像是地板上的一捆树枝
如果树干患病了,最终分支也会受到影响,然后整棵树就会死亡
如果分支患病了,你可以剪掉它,然后其他分支还会生长出来的哦!
如果分支生长太快了,对于树干它可能会非常沉重,最后整棵树会垮塌掉
当你感觉你的树、树干或者是分支看起来很漂亮的时候,你可以给它照张相(tags),这样就就可以记得它在那时是多么的赞。
三个目录的两种使用方法

一、主干开发
主干代码主要用于开发,主干代码始终是最新的开发版本,有可能是不稳定的,分支代码主要存储某个阶段性的稳定的代码分支,会在分支上做少量的开发维护工作,tags只在特定版本上做上一个标记不做开发

二、分支开发
主干代码不做开发,所有的开发任务在branches分支上开,开发完成后合并到主干代码上

两种目录结构在实际的开发工作中可能会交叉使用

使用场景
初期开发中使用主干开发
后其集中升级开发的情况下使用branches进行开发,最终合并到主干上去

具体使用情况根据实际需求来使用不同的开发方式
当前目录Import 导入代码到版本库中通常用于版本库初使化

clipboard.png


冲突处理
当两个人同时update后对同一个文件进行操作,操作完后A成功提交,B再去提交时B会产生冲突

2.png

看到上边的提示后首先在本地update一下看效果图
分别有冲突文件、自己修改的文件、自己修改前的版本、服务器上别人修改的最新版本


从上边的图可以看到SVN客户端自带了一个比较编辑工具,但是对中文的支持不好
大家可以用自己的编辑器来进行比较编辑,其实一般冲突比较少的时候可以直接打开冲突文件来进行编辑,有个开始和结束标志,把一样的东西保持不一样的东西修改好顺序,一般默认上边的内容还放在上边



修改后再进行 resolved操作,这操作的作用就是删除本地生成冲突文件,这步操作是必须的,然再进行commit操作就可以了



SVN客户端使用技巧
添加快捷菜单
在上边解决冲突的时侯可以看到经常需要选择二级菜单,许多常用的功能也得选择二级菜单非常的不方便 ,怎么解决呢
勾选上常用的操作,如
查看log 添加文件 编辑
冲突文件,解决冲突,
删除等,这些内容虽然设
置了一级显示,但是系统
会根据实际情况来显示的


第三比较冲突编辑工具,前边可以看到编辑冲突文件时自带的编辑器不是太好用,下边我们来集成一下第三方的工具
Beyond Compare ,主要有两个地方,一个是比较另一个是合并,合并也可以用于冲突编辑 主要参数
"D:\Program Files\Beyond Compare\BCompare.exe" %base %mine /title1=%bname /title2=%yname /leftreadonly
"D:\Program Files\Beyond Compare\BCompare.exe"  %mine %theirs %base %merged /title1=%yname /title2=%tname /title3=%bname /title4=%mname



Logs相关操作-添加
在进行提交操作时一般都需要写上message信息,这些信息对提交进行一些说明,对多多人开发来说非常重要
    添加message信息,在commit操作的时候

使用SVN show log 命令可以查看历史的logs记录

在日志上点右键可以修改日志的内容和作者

Logs相关操作-关联trac 任务单
在trac中新建的任务单,SVN可提交相关性,比如任务单 #1
完成后再commit的时候把 message的末尾加上 #1,这样对应的trac就会有相关信息的链接


目录或者文件的忽略
在SVN管理的代码中很多临时性的文件是不需要归到版本库的管理,但这些生成后会提示添加或者修改的图标,所以有些缓存目录或者临时性的文件怎么来设置为忽略,而不让SVN客户端提示
哪些类型的文件需要忽略

在window下自动生成的Thumbs.db文件
一些程序编译时生成的.obj等文件
程序生成的编译目录下的临时文件或者缓存文件
特定的目录


目录或者文件的忽略
整个目录的忽略

文件的忽略

分支的操作-新建分支
Branches 和 tags 目录下其实都分支,只是branches的分支有时候也用于开发,tags只是一个快照归档,在导入初使版本的代码的时候一般都放在trunk目录里边
新建分支 branch/tag,建立后到branches目录update


分支的操作-合并分支
在分支开发完成后把分支合并到主干执行merge命令,下图是把分支合并到主干上


可以先测试一下合并或者直接merge

当主干代码和分支代码有冲突的时候SVN客户端会提示冲突解决是现在解决还是稍后解决

上边操作使用的稍后解决,因为冲突的文件可能会比较多
通过下图可以看到冲突的文件不多一个新加一个冲突,对于数目较多的要注意修改所有冲突的文件

下图是合并后本地的代码,和普通的代码冲突是一样的,那么下边的处理方法就按代码冲突来进行处理,处理完成后 执行 SVN resolved,然后再执行commit操作,这样分支合并到主干的操作就完成了

分支的合并主要有分支-主干  分支-分支这样的操作,其实原理都是一样,都是以一个为基础,把另一个合并到当前的基础上,在基础代码上去除冲突 这样新的版本就形成了,然后再把当前基础代码进行提交,这样合并操作就完成了

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post