Mac下的SVN客户端工具Cornerstone使用教程

使用命令当然是一个非常好的选择,但是对我们人类来说还是喜欢图形化界面的操作的。因此本文将介绍我喜欢的一款SVN客户端工具的使用。

 

想要安装的Cornerstone的朋友,我有个坏消息是,如果你想使用它的正版软件,你是需要花费几十美金的,当然这里我带给您的永远都是有价值的好的信息,那就是在我们天朝使用软件还花钱真的是极品,我就奉献一下我在网上找到的一个比较好的破解版:http://pan.baidu.com/s/1o6F31zG

 

这个破解版本的Cornerstone软件安装方法我就不做介绍了,因为太容易。本文重点介绍一下它的使用方法。

 

当你打开软件时候会看到如下图所示界面:

 

 

 技术分享

 

 

现在是空空如也,因此我们应该做点什么,让它发挥作用。界面还是非常的直观和有引导性的,我直接按灰色区域的“Add repository” 

 

 技术分享

 

完成点击之后会弹出配置界面,一般我们会使用第四个选项卡”SVN Server”.如图

图中我对SVN服务器做了访问的svn服务器配置,配置介绍如下: 

 技术分享

tunnel:访问通道,默认不用修改

Server:我的svn服务器在本地,所以Server填写了localhost

Port:设置端口号,我在服务器上没有配置访问端口号,所以port留空

Repository Path:这个是服务器仓库的目录位置,我这里填写了company,这是因为我在SVN服务的根路径下添加了company仓库。

Nickname:显示名。这个可以随便填写,建议为仓库和用户名的组合。

 

 

如果您的配置正确应该会添加成功的,如果错误,请检查服务器是否开启和你配置是否正确等。 下图是我们添加仓库成功后的效果图:

 

 

 

 

 技术分享

  

从图中可以看到我昨天写的《SVN服务器配置实战》中的目录结构了。

 

现在我们来试试CorenerStone是如何代替我们的命令行的.下图介绍各个功能模块的作用: 

 技术分享

四、使用简介

 

1.上传项目到repository

 

可以直接拖动到repository的子文件夹中,或是选择软件上方的Import按钮上传,会弹出选项填写所在位置及名称,然后选择Import即可

 

 

 

 

2.下载项目

 

下载分为两种:Export和Check Out,区别在于,Export后的项目不会与repository中的源文件相关联,是一个独立的版本,而Check Out下来的文件会创建一个working copy,参见步骤三的第一幅图,此文件与库中源文件相关联,当有新版本(他人修改)或是本地修改(自己修改)时,working copy会显示修改数量,白色数量为他人修改数量,灰色数量为本人修改数量

 

所以如果你是项目中的开发人员,可以选择check out,如果只是下载查看,不希望自己的修改影响到整个项目,最好是选择Export

 

3.版本管理

 

每一次提交会创建一个新版本,在repository中会保存所有历史版本,如下图(可通过修改人及提交信息进行检索版本),所以用svn开发可以很好的控制项目出现不可解决及未知bug时代码的修复问题:

 

 

 

svn方便了多人开发同一项目的代码合并问题,但是也有一些事项需要注意:

 

①先更新后提交

 

在看到有新版本(即同伴已经提交代码时),先更新代码,直至working copy不再显示白色圈,然后运行代码确定可运行且功能无误之后再commit自己的代码,否则,会造成项目中出现多处冲突或bug,且很难排查原因

 

②完成独立功能后再提交,且务必填写提交信息

 

每完成一个独立的功能,或解决一个bug之后再提交代码,不要连续多次重复提交,造成版本过多过杂,且提交时务必填写提交信息,交代本次完成了什么功能,方便上图中可以进行message的搜索来查看历史版本

 

③冲突文件

 

原则上同一组开发人员最好不要在同一文件中进行操作,但有时候必须去其他文件中进行操作,或者是误操作,如果同时多人在同一文件的同一位置修改代码,后提交的人会出现版本冲突文件,一般会有三个同样名称不同后缀的文件

 

.mine文件:本人所做修改

 

两个.r0XX文件:XX为数字,数字较小的为更改前的文件,较大的为更改后的文件,在文件中会有<<<< mine .r0XX  >>>>>等字样包含起来的代码,即冲突的地方,此时请和组内同事讨论或自己删除某部分修改文件后进行调试,修复文件

 

针对ios项目:出现某个工程或文件打不开的情况,如果为.project文件无法打开,则选择显示包内容->用文稿打开project.pbxproj文件->搜索.mine,将.mine部分前后<<<< >>>>包含起来的代码删除,工程就可以打开了,如果build时出现某个xib文件打不开的错误,则选中,用文稿打开,跟上文同样操作即可解决无法build的问题

 

④新添加文件

 

提交时新增加的文件显示为问号状态的,请选中右击后 选择Add to Working Copy之后再commit


=============================================================================================================================================================================================================================================================================================================================================

IOS Cornerstone的使用方法

简介:

CornerStone是Mac OS X系统下非常好用的一款svn工具,至XCode5之后,本人觉得XCode5的Svn实在让人不得要领,而CornerStone配置虽不难,但也有几个需要注意的地方,分享给大家,也希望大家能多提意见声明:CornerStone是付费版128人民币,本文提供的破解版来自网络。

一.下载地址

由于现在下载已经在AppStore无法找到,请用下方百度云盘地址进行下载

CornerStoneV2.6:https://pan.baidu.com/disk/home#list/path=%2F或者在网络上直接搜索“cornerstone破解版”也可以找到。

二.安装破解方法

1、安装之前将本机日期改为未来的某个日期,然后双击安装,按照指定流程操作即可

2、如果安装前忘记改日期,则只能通过修改plist的方式进行破解

a.显示系统隐藏文件,打开终端,输入,回车

?

1

defaults write  ~/Library/Preferences/com.apple.finder AppleShowAllFiles -booltrue

b.重启Finder按住Command+Option+esc打开对话框,选中Finder,点击重新开启



c.在Finder中前往~/Library/Preferences/ByHost,找到其中的GlobalPreferences.…….plist文件,删掉包含有"com.zennaware.Cornerstone"字样的这一行,即清除了安装记录

d.清除安装记录之后,如果这时电脑中没有CornerStone,则按照1步骤进行安装,如果已经安装,则卸载后按照1过程再次安装,即得到永久破解版

三、添加Repository(就是添加服务器的项目)

这里面点击加号之后呢,会出现如下的页面



(一)这里存在常用的两种创建方式



分别是1、SVN

Server

2、HTTP Server

下面根据这两种方式进行详细的解说如何创建,并说其中的参数是什么

意思?

问题一、什么时候用SVNServer

答:如果你公司的给你的repository地址为svn://开头,则选择SVN Server

问题二、什么时候用HTTP Server

答 :如果为Http://或https://开头,则选择HTTP Server

问题三、里面的参数都是什么意思?

答:这里 假设你公司svn地址为:svn://192.168.1.111/svn/ios,用户名:svnserver,密码:123456操作如下图:



·1:填写主机地址

·2:如果你的主机地址中有端口号,如为192.168.1.111:8080,则2中填写8080

·3:填写主机后面的路径

·4:自动生成,如果你填写完之后不是这种svn://用户名@主机地址:端口号/路径的格式,则说明填写有误

·5:也会自动生成,将会在侧边栏显示为5中的名称,可以自定义名称

·6:用户名

·7:密码

以上信息填写无误之后选择添加即可,如遇添加失败,信息填写无误,则联系管理员,查看地址,用户名,密码是否正确

备注:这里的所有参数信息都可以自动生成(在点击添加Repository之前呢进行复制粘贴的操作,然后在点击添加按钮之后,你会发现所有的参数已经自动生成)



备注:HTTP的操作和SVN Server的操作的一模一样的,就不多进行详细的介绍,不过如图所示,如果你发现公司发送给你的地址是HTTPS开头的那么你需要把图片中的选项更改为HTTPS

(二)上面已经把创建svn和http地址的方法进行了说明,下面进行创建项目最开始如图所示



(1)第一次我们创建项目的时候都需要有一个人搭建项目(单人,多人)都需要,这里呢,创建项目流程这里就不做过多解释了(快捷键command+shift+n)创建项目之后我们就该把本地项目添加到服务器了,供大家一起下载操作如图:



上图就是我们所看到的添加项目到服务器的页面,前提的在服务器进行添加,所以左下角需要先选中哪个服务器地址,然后点击上方的import按钮将已经在本地创建的项目工程进行添加到服务器。这个时候你会发现(多人开发)当别人用其他账号登录服务器时候会在服务器看到这个项目,那么这个时候就是他人下载服务器项目的时候了,怎样下载呢?如图所示:



上图所示就是他人在下载服务器项目的操作,首先一样,我们要选择我们要下载的服务器位置,然后在服务器下面选择你要下载的项目,点击屏幕上方的Check out进行下载(这里需要注意的是下载的时候要注意不要与本地的项目名称进行重名操作)

(2)多人协同开发checkout之后 就可以各做各的模块部分(注意尽量不要碰别人模块的部分,如果碰了也没事提前说好,下面也写了对冲突解决的方式)

(三)、介绍cornerstone上面的按钮都是什么意思?如图所示:



(1)、checkout下载服务器 项目到本地(服务器状态下才能点击)

(2)、NewFolder给本地创建一个新的文件夹 ,方便整理(如图所示)



(3)、tag和Branch功能差不多,但是也有区别,这里一起说:

从svn命令操作的角度,branches和tags是一样的,都是分支标记功能,两者的区别主要在于默认的使用用途。

一般来说:

1、branches下用于存放“分支”,比如用于测试的分支、用于不同版本开发的分支、用于缺陷处理的分支等等,“分支”下存放的内容是会继续修改的;

2、tags下用于存放“标记”,比如某个发布版本的标记,“标记”下存放的内容通常来说是固定不变的。

比如:开发进行到1.0版本测试完成,要进行对外软件发布了,同时项目组后续会拆分成两个小组,一个小组负责1.0版本的BUG维护,另一个小组开始在1.0基础上进行2.0版本的开发。此时,就可以把当前版本从trunk拉到tags下一份,标记为release1_0,然后对外发布时就从这个文件夹获取;然后再把当前版本拉到branches下一份,标记为bugfix1_0,负责1.0版维护的小组以后就在这个文件夹下进行修复工作,负责2.0版开发的小组继续在trunk下工作。

从配置管理的角度来看,打基线就是把库中的某些内容打个标记,就是拖到tags文件夹下。

(4)Revert,Updata,Commit,Merge(这四个都是对于本地项目的操作)

1、Revert就是回滚,回滚到-revert toLast update是回到上一个版本

2、Updata就是更新,更新本地版本和服务器同步

3、Commit就是上传,上传本地项目与服务器项目进行合并

4、Merge就是分支合并本地项目,假设你本地有两个工程如图:




3、点击最后的按钮选择路径



4、在远程仓库中选择A

5、点击右下角MergeChanges

(5),import和e xport这两个就不说了,一个上传服务器,一个下载服务器

(四)、下面说下点击本地项目之后右侧出现的列表栏

上面的英文都是什么功能?

答:如图所示:



(1)change和Modified这两个是本地目录有变化有修改的

(2)Conflicted是有冲突的

(3)Missing是丢失的文件

(4)Unversioned没有在版本库的文件显示存储库状态显示忽略物品显示内容的外部

(五)这里说下最下面一层的英文那些

比较主要?

答:如图所示:



(1)先说下,下面的这四个图标都是什么意思,箭头,眼睛,双向箭头,还有DNA一样的图标,分别的意思为:

源列表的切换可见性显示忽略项目显示存储库状态显示内容的外部

(2)也就是最有用的就是:resolve conflicts是解决冲突(xocde自动解决冲突)

(六)、说一下常见的svn报错问题以及解决心得

项目常见问题(1)、

这种情况就是xcode已经运行不了了,如图运行图标没了!!!!



XXXXXXX,cannot be opened because the projectfile cannot be parsed.

解决办法:


对.xcodeproj文件右键,显示包内容

双击打开project.pbxproj文件

查找<<<,解决冲突

保存,退出,重新提交配置文件

重新打开.xcodeproj文件即可

项目常见问题(2)

图片上传出现冲突:比如说项目来了两个图片这时项目组的人上传出现了重复的现象而且名字不同,这时服务器就回报错,

解决办法:删除服务器图片,然后重新上传一次(这里上传图片时候切记一一定不要大写图片名称,之前我写过,程序崩溃了)

项目常见问题(3)

写了一天的项目,一到下班时间,一着急我擦,把项目直接commit了。这个是我们经常出现的错误(在commit之前一定要updata,为什么要这样做呢。就是你要确保在上传之前一定保证本地与服务器没有冲突,这时候才能上传服务器,否则直接上传到来的后果就是服务器崩溃,导致其他updata的小伙伴本地项目工程一样崩溃)

项目常见问题(4)

上传的过程中难免会出现上传不完全的现象,这个问题出现的后果就是,其他小伙伴在updata你上传的代码时候发现少文件,导致项目跑不起来,解决办法:

上传切勿着急,上传一次之后在commit一下,确保项目完整传递到服务器,有条件的情况下,告知小伙伴你上传完之后直接更新服务器,看看是不是抱错,这样才能安然下班,防止二次出错

项目常见问题(5)

项目路径找不到的问题。有的时候会出现文件路径不对的问题

解决方法:就是最开始本地创建文件的时候就不对,因为你add到项目到中的文件,没有到项目里,只是添加到了本地,这样的结果是你本地不会有问题,但是一旦上传服务器,那么其他人更新你写的文件时候就会因为找不到路径而缺失文件,所以最开始文件创建就要保证文件已经添加到项目当中,

项目常见问题(6)

新添加文件

提交时新增加的文件显示为问号状态的,请选中右击后 选择Add to

Working Copy之后再commit



这里图片的问题是有的感叹号文件代表不识别文件,有可能是服务器最开始你有,但是你把本地的删除了,所以这个时候服务器就会显示感叹号代表这个文件不识别,也就是不确定这个文件是做什么的,解决办法就是删了它,或者找到这个文件是做什么,然后重新上传,

项目常见问题(7)

有的人经常会通过回滚来解决报错的问题,其实我是不支持的,因为这个操作有可能不会太有用,这里教大家放大招。

解决方法:放大招!!!什么是大招,其实就是笨方法,首先你要确保服务器的项目是好用的,这样你把本地项目进行保存,然后重新checkout然后把当日做完的文件夹重新托拽到重新checkout下的项目工程当中,这样做的成功率为100%,但是有条件就是服务器一定要好用。

心得:

说到冲突我就再提醒两句,遇到冲突并不可怕,可怕是自己不懂后胡乱的瞎搞乱点。

-遇到冲突,先在对应的冲突文件下做代码的增和删就行,解决了 代码问题在点解决冲突就可以了。别一股脑的乱来,冲突往往是有不止一个人同时操作一个文件,一个H或者M文件造成的。这个不可怕,在集成中会遇到,协商解决才是王道!(未完待续)

作者:辛小二 链接:http://www.jianshu.com/p/fc74e6351362 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。