SyncroSVN 使用手册

2 篇文章 0 订阅

无线业务系统

SyncroSVN 使用手册

v1.0



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

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.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 ,如下图:

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


比较工具的配置

 difffork工具配置Version Control System integration

Starting from version 1.1.6, the DiffFork command-line utility supports OPTION "-w --wait", which can be used to help work with Git, Mercurial, Subversion, etc.

Note: DiffFork can compare 2 folders/files. 3-way diff/merge is not supported. 

To install the command-line utility, choose "Install Command-Line Utility..." from the Help menu.

    USAGE
      difffork file1 file2 [OPTION]
    DESCRIPTION
      -w --wait
         Wait for the diff window to be closed.


diffmerge的配置

/Applications/DiffMerge.sh  ${secondFile}  ${firstFile}  ${ancestorFile}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值