SyncroSVN 使用手册

无线业务系统

SyncroSVN 使用手册

v1.0


Contents

       SyncroSVN 概述

       SyncroSVN 安装

2.1        SyncroSVN 安装

2.2        DiffMerge 安装

2.3        SyncroSVN 其他设置

       SyncroSVN 使用

3.1        界面介绍

3.2        建立工作拷贝

3.3        基线和分支创建

3.4        分支合并

3.5        冲突解决

3.5.1 树冲突解决

3.5.2 文本行冲突解决

3.6        属性设置


1      SyncroSVN 概述

SyncroSVN 是 Mac OS X 环境下功能完整而且风格最接近 TortoiseSVN 风格的 GUI 客户端,使用操作与 TortoiseSVN 类似,常用操作基本都在右键的上下文菜单可以找到,以下相关内容在 SyncroSVN 7.0 和 Mac OS X 10.6.5 验证通过。

2      SyncroSVN 安装

2.1     SyncroSVN 安装

安装介质可从 获取,下载解压后,把快捷方式 SyncroSVNClient 拖到桌面下方的 dock 工具栏即可使用。 SyncroSVN 安装后如果不能启动,需要检查操作系统是否已经安装 Monaco 或 Helvetica 字体,对于版本低于10.6.3 的操作系统,须安装 JRE5.0 或更新版本。

安装后首次启动会有注册提示,通过 SyncroSVN 界面上方主菜单 Help->Register 注册,License 文件信息可找 huanling 或 yunshandi 索取。

2.2     DiffMerge 安装

虽然 SyncroSVN 提供了自带的合并工具 FileMerge ,当以行为单位解决冲突时,缺少右键上下文菜单的功能, DiffMerge 的引入,可以很好的解决该问题,当使用 DiffMerge 解决冲突时,使用方式几乎和 windows 的 TortoiseMerge 一样,可以彻底解决切换到 windows 机器合并代码、解决冲突的困扰。

DiffMerge 也可从以上地址下载,下载后使用默认的磁盘工具打开该 dmg 文件,打开后把里面所有文件拷贝到某个目录 ( 如提前在桌面新建好的 diffmerge 目录 ) ,拷贝完后还需要做两步设置:

1)     注册 DiffMerge :

把刚从 dmg 文件解压出来的 app 文件 ( 如 /User/huanling/Destop/diffmerge/DiffMerge.app) 复制到应用程序 (/Applications) 中;

2)     SyncroSVN Diff 设置:

SyncroSVN 主界面上方菜单栏 ->SyncroSVNClient-> 偏好设置 ->Diff ,如下图:

注意 : 首先 ,这里选择的是 sh 文件 ( 不是 app 文件 ) ,本例中路径是/User/huanling/Destop/diffmerge/CommandLine/diffmerge.sh , 其次 ,默认的三个参数顺序是 ${firstFile} ${secondFile} ${ancestorFile} ,需要调整为 ${secondFile} ${firstFile} ${ancestorFile} ,这样解决冲突时更加方便;

其中 firstfile 是本地工作拷贝的版本, secondfile 是从服务器更新带来的版本,而ancestorfile 是前两者的共同祖先版本。

 

2.3     SyncroSVN 其他设置

SyncroSVN 的大部分默认设置无需改动即可满足日常需要,安装完毕后可把编码设置优化一下,如下图:

      另外syncroSVN默认是不启用软链接支持的,如果不启用,syncroSVN将在mac下无法识别软链接,通过Syncro SVN Client->偏好设置->SVN,如下图:

      启用后重启下syncroSVN即生效,对于已经checkout的带软链接的工作拷贝,建议使用原地址重新checkout一个工作拷贝来修复不可识别的软链接。


3      SyncroSVN 使用

3.1     界面介绍

SyncroSVN 提供了功能强大的 GUI 操作,包括右键上下文菜单操作、版本过滤、客户端界面切换等,如下图:

3.2     建立工作拷贝

签出代码与 Tortoise 类似,如下图,签出完后即可在上图中的 Working copy 的 tab 页进行日常的开发活动:

 

3.3     基线和分支创建

基线或分支的创建,可从 Repositories 面板 ( 类似 TortoiseSVN 的 Repo-brwser) 上进行,在创建之前,可能不存在对应的版本库标签,可从点击下图的增加版本库标签按钮创建,创建完毕即可浏览版本库的内容:

创建基线或分支,选中主线目录,如 trunk ,然后点击主菜单的 Tools->Branch/Tag ,弹出以下窗口,用 Browse 选择目标目录后,还得手工补充基线或分支的名字,输入完点击下方OK 按钮完成创建。

 

3.4     分支合并

分支合并首先选择把分支间差异应用到哪个工作拷贝,先切换到 Working copy 面板,选中工作区,如 wc3 的根目录如下图:

然后点击主菜单 Tools->Merge ,接下来的操作选择合并种类,与 TortoiseSVN 类似:

三种合并的区别详见 << 基于SVN 的 并 行 开发技术>> ,这里选择第一种,如下图所示,把分支 1.0bugFix 与主干 /trunk/src 之前的差异应用到 wc3 工作区中:

 

备注:下方 Target 中的参数是工具自动获取的,不需要手工设置,只需要设置“ From URL”和“ Revision range to merge ”两处,这与 TortoiseSVN 是一样的。


下图的合并参数与 windows 环境合并类似:

然后点击 Finish 即可开始合并,执行合并并把冲突解决完毕后,需要把 wc3 工作区上的改动提交才算真正的合并完成。

3.5     冲突解决

冲突产生从来源上看可以分为两种:一种是在非最新版本下修改的情况下更新遇到的冲突,另一种分支间的合并产生的冲突。从类型上看,分为文本行冲突和树冲突。文本行冲突是指 2 个版本之间同一行内容有差异 ( 都不是空行 ) , SVN 无法做到自动合并 ; 树冲突一般是指两个版本在文件或目录之间的差异,当删除、修改、重命名交叉发生在两个版本之间时,更新或合并时树冲突就产生了。

关于冲突产生的原因,请参考《 基于SVN 的 并行 开发技术 – 冲突产生的原因 》

3.5.1 树冲突解决

      当合并或更新后出现以下符号时,就是树冲突了:冲突解决可以右键菜单 ->Edit confict 解决,

右键选择编辑冲突后打开以下的对话框,这里只能二选一,要么保留工作拷贝本地的修改,要么接受来自服务器的更新:

点击 OK 按钮后提交,完成树冲突的解决。

3.5.2 文本行冲突解决

      当合并或更新后出现以下符号时,就是文本行冲突了: 

 

如上图所示,当文本行冲突发生时,会产生三个临时文件, mine 结尾的是本地的工作拷贝版本,剩下 2 个其中版本号小的是合并双方的共有祖先版本,最后一个是来自服务器更新进来的版本, 冲突解决可以右键菜单 ->Edit confict 解决,接下来会打开 2.2 章节配置的 diffmerge界面,如下图:

      如上图所示,合并的结果会在中间一栏的本地工作拷贝版本体现,右键冲突行的上下文菜单功能分别如下:

Replace with Left : 取左栏的行作为合并结果 ;

Prepend from Left :把左栏的行内容追加到本行内容前面 ;

Append from Left :把左栏的行内容拷贝到本行的下一行 ;

Replace with Right :取右栏的行作为合并结果 ;

Prepend from Right :把右栏的行内容追加到本行内容前面 ;

Append from Right :把右栏的行内容拷贝到本行的下一行 ;

若冲突可以选择中间三栏中任何一栏的全部内容可以解决,则可以使用 Select ALL 搭配Copy( 点击 Select ALL 后会出现菜单 ) 、 Paste 。所有冲突行处理完后点击上图中的保存按钮然后退出即可,再右键发生冲突的文件,如上图的 line_conflict.txt ,选择 Mark Resolved ,至此,行冲突解决完毕。

3.6     属性设置

SVN 的大部分属性都需要在签出的工作拷贝中设置,而在 Mac 下的 SyncroSVN ,所有属性设置必须通过签出的工作拷贝中进行。切换到 Working copy 面板,右键点击需要设置属性的目录或文件 ->Show SVN Properties ,如下图:

      属性的增加、编辑和删除,都需要设置完提交对应的目录或文件才能生效。

你可能感兴趣的:(SyncroSVN 使用手册)