SVN是一个非常好的源码管理工具,现在Mac 版SVN 常用的有Cornerstone 和 SnailSVN .
这篇文章详细的介绍Cornerstone的安装和以及应用(本文的Cornerstone版本是4.1 )。
Cornerstone 是收费软键,这里提供一个**版 ,安装后需要输入安装密码:www.ifunmac.com
链接:https://pan.baidu.com/s/1LqY2s8vEJAQ9JJhvcBwu7w
密码:lfi3
1.下载输入密码安装,和其他程序一样,一直点击Next
2.进入Cornerstone后,点击Add Repository ,创建一个仓库
3.如果你的SVN服务器经过Apache映射,选择Http Server,如果没有,则选择SVN Server。这里我选择http Server。(如果你们是前后端分离,恰好后台人员不好交流,你可以两个都尝试一下,总有一个是成功的)
Protocol:协议:Https或者Http
Server:SVN服务器的地址 (例如:198.168.1.1)
Port: 服务器端口,有则填,没有不填. (例如:8010)
Path:SVN的路径。 (例如:svn/iOS/xxx/xxx/)
Title:仓库名 (随意取,旧版本的Cornerstone叫Nickname)
Name:用户名 (后台给你开的一个账号,保证有上传权限)
Password:密码
都填好后,点击Add。
4.点击Add后,即创建仓库成功。不过有时候系统会提示:证书未被验证(如下图所示)
cornerstone can't verify the identity of the server “112.124.106.141”(cornerstone不能验证“112.124.106.141”的服务器身份)
the certificate for this server was signed by an unknown certifying authority (此服务器的证书由未知的认证机构签署)
因为我们用的是**版,证书当然不被认同。我们点击“show Certificate”看证书详情,然后勾选“Always trustxxxx”,始终信任该证书即可,然后直接点击Continue (Continue成功后,在钥匙串里可以看到证书)
5.这样我们就创建了一个仓库,到这一步安装算是完成了,接下来是应用:
简单介绍几个常用的命令按钮:
Import: 上传一个项目到仓库
Export : 拉取代码到本地. (通常项目组长review代码,只是下载查看,不修改整个项目,选Export)
Check out : 拉取代码到本地 (程序员每天拉取下来编程)
Update:更新
commit:提交
通常使用顺序是:
1. 上传: import 代码到仓库
2.拉取:先update更新代码,再check out到本地
3.提交:先update更新代码,然后本地运行代码,确保没有错误后,再commit 代码。
6.先讲 Import 代码。
6.1. 上传代码之前,得先对Cornerstore进行一些配置:Cornerstone-->Preferences-->Subversion
在Use default global ignores 里把 .a文件的标签删除掉 (假使你的项目使用到第三方,必定有.a文件,Cornerstone默认不会上传.a文件,删除掉就会上传啦),如果你的项目还有别的文件不能被提交,对照Use default global ignores 里的标签删除掉
6.2 选择你要存放代码的路径(通常放在主干 trunk 文件下),右键-->import,选择要上传的代码,导入;静候进度条走完,即import成功。
import 的成功后,点击存放代码的路径,会看到cornerstone上多一个 .git文件
7.拉取 check up。 选择cornerstone上的文件,点击check up,选择拉取的地址,静候进度条走完,即check up成功。
Save As :你要拉取的 文件名
Tag:标记,可不标记
Where:存放拉取下来的文件的地址
8.check up 到本地后,就可以编写代码。
编写完代码,会发现cornerstone 上对应的文件后有 “M”标志,反之,查看代码之时,有“M”标志的文件表示被改过了
编写完代码,先update,运行一次,确认代码无误后,commit 提交。
错误集锦:
1.check up 了别人的代码到本地-->运行-->出现错误:no such file or directory:/users/xx/xx/xxx.a
出现这个问题的原因就是上面第6步讲的,上传(import)代码的人没有把.a标签删除,导致.a文件import不上来
解决这个问题,需要叫import的人照着第6步的方法,把.a标签删除后,重新import一份代码。