美文网首页OC学习iOS Developer
使用第三方工具Cornerstone搭建本地SVN服务器

使用第三方工具Cornerstone搭建本地SVN服务器

作者: 猪猪侠在这z | 来源:发表于2016-04-25 15:20 被阅读2513次

文章原地址

一、添加版本资源库

点击Cornerstone左下角REPOSITORIES栏右边的加号按钮,在弹出的视图中选择File Repository,然后选择Create a New Repository,接着开始填写资料

Where栏目是指本地服务器的存放地址,我一般是选择放在Mac的文稿里边的,那里好分辨。

Nickname是指你本地服务器的名称,随便取,你认得就好,比如我的叫做:GG Boy

Create as我一般选择与NickName同名

Compatibility就是兼容SVN的版本啦,现在Xcode7.3自带的应该是SVN 1.7吧,所以选1.7是没事的,如果你不知道你所拥有的SVN的版本号,我这边的一段命令svn --version,这样你就可以获取自己SVN的版本号了。

我运行的结果是:svn, version 1.7.22 (r1694152),也就是说我的SVN的版本号是1.7.22的

一切OK后,Add就好。

二、SVN配置

点击你的资源库文件夹,然后修改他的子文件夹conf中的authz、passwd、svnserve.conf这三个文件,直接用文本工具打开就好

1、authz

a、修改之前呢是这样的,

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar]

# harry = rw

# &joe = r

# * =

b、修改之后呢是这样的

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

testGroup =zhuzhuxia,xiaofeifei

[/]

@testGroup=rw

[/]

zhuzhuxia=rw

xiaofeifei=rw

# [/foo/bar]

# harry = rw

# &joe = r

# * =

很明显中间多了这么一串

testGroup =zhuzhuxia,xiaofeifei

[/]

@testGroup=rw

[/]

zhuzhuxia=rw

xiaofeifei=rw

首先呢,testGroup就是你所创建的组名了,自定义的,随便写。

zhuzhuxia,xiaofeifei这个呢就是你的组成员

[/]

@testGroup=rw

[/]

zhuzhuxia=rw

xiaofeifei=rw

这个就是所谓的配置权限了,[/]代表你SVN中的所有资源,再加上@testGroup=rw意思是该小组中所有成员对SVN中的所有资源具有读写权限,rw = read and write

至于为什么一直要加上  [/]

[/]

zhuzhuxia=rw

xiaofeifei=rw

我就不是很清楚了,毕竟这个涉及得少,但是你必须这样子写,不然会错得让你怀疑人生,来,看图,曾让我几度怀疑公司的加密软件的罪魁祸首

```

Description : An error occurred while contacting the repository at “192.168.10000.zhuzhuxia”.

Suggestion : The server may be unreachable or the URL may be incorrect.

Technical Information

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

Error : V4CommunicationError

Exception : ZSVNCommunicationException

Causal Information

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

Description : Unable to connect to a repository at URL 'http://zhuzhuxia@192.168.10000.zhuzhuxia:180000'

Status : 175002

Description : OPTIONS of 'http://zhuzhuxia@192.168.10000.zhuzhuxia:180000': Could not read status line: connection was closed by server (http://zhuzhuxia@192.168.10000.zhuzhuxia:180000)

Status : 175002

```

2、passed

成员添加了就该设置密码了吧

修改前:

[users]

# harry = harryssecret

# sally = sallyssecret

修改后:

[users]

# harry = harryssecret

# sally = sallyssecret

zhuzhuxia=123456

xiaofeifei=123456

3、svnserve.conf

修改前:

其中有这么四段,自己去找吧

# anon-access = read

# auth-access = write

# password-db = passwd

# authz-db = author

修改后:

删掉每段前面的空格和#,

其中值得注意的是:anon-access = read这个表示用于他人匿名查看你的资源,但是他仅仅具有查看功能,

anon-access = none这个呢就代表要查看资源必须具有账号和密码

anon-access = none

auth-access = write

password-db = passwd

authz-db = author

如此,SVN的权限就配置好了

三、开启你的SVN

在终端中输出指令:svnserve -d -r  +你的版本库地址

强调一下:版本库地址尽量别手动输入地址,很容易出错的,直接拖文件夹进终端,他会自动生成的,地址反正比你的准确就对了


这里的版本库地址是指:你在第一步中添加的文件夹的地址,而不是你的源代码文件夹地址,比如我的就是在文稿中的GG Boy文件夹,这个文件夹名称是根据Create as那个命名的来的,而不是Nickname中的


是:svnserve -d -r /Users/hutton2/Documents/GG\ Boy ,输入完毕没反应,基本上就是成功了,不信的话自己也可以去活动监视器里面看的

如果你开启了多个svn,那你就在终端输入指令:ps aux |grep svn,然后紧跟你Mac用户名后面的那个数字(此处是2698),并且末尾也会告诉你这个数字与你开启的哪个SVN相对应。

我的是:hutton2          2698  0.0  0.0  2462016    748  ??  Ss  11:38上午  0:00.03 /Applications/Xcode.app/Contents/Developer/usr/bin/svnserve -d -r /Users/hutton2/Documents/GG Boy

四、上传源文件

在Cornerstone中,光标选中居于左下角的你的版本库,然后在软件中上方就能点击import了,然后按照他的提示,去选择你要上传的源文件就好

五、Check源文件

import源文件之后,你有两种选择方式:其一为中上方的export,这个仅仅是导出源文件,他并不具有svn的基本功能,我们一般用的是check,点击cornerstone中的源文件,然后点击左上角的Check Out

Check Out As 是你导出后文件的名称,

Where是导出位置

Format是SVN的版本,别选错了

如此你自己的SVN就好了,剩余的就是你的小伙伴的工作了

六、小伙伴check源代码

打开工具Cornerstone,然后点击左下角REPOSITORIES旁边的"+",在弹出视图上选择SVN Server,填写

Server:是搭建SVN服务器之人的IP

Port:一般本地SVN服务器的应该不用写

Repository:这是资源库下代码库的地址,也就是你存放源代码的上一级,这个待会儿再细说

Nickname:这个当你填写上面之后会自动生成的

Name:你的SVN账号

Pasword:你的SVN密码

点击Add,左下方自然会生成你的资源库的,然后光标移至该资源库中的源代码,点击左上角的CheckOut,以后你写代码就得在你所check的地址中写了。

注意:下面来详细说一下这个Repository

我们都知道这是源代码存放地址,但是不明白的是为什么我此时不写地址也能拷贝出代码,其实我也不懂。但是我想要说的解法:

比如,我们多数情况下只会创建一个SVN,然后多个项目存储在资源库中,但是像我这个例子中,我们不写地址,那么我们的结果是把所有的资源都拷贝了过来,可是我们只是想要其中一部分而已呢,

此时我们就要创建子文件夹了:光标移至资源库,然后右击资源库的空白处就会出现选择菜单,点击New Floder in "GG Boy",然后按着提示做就创建了子文件夹了,此后我们不同的源代码就可以存储在一个SVN中,并且能够被单一识别。

比如我创建了一个名为BCD文件夹,你的小伙伴想要check里边的代码,那么他的Repository就得填写为BCD。

然后需要注意的一点:

大家如果想上传静态库文件,需要在屏幕上方工具栏中Coenerstone->preferences->

取消 Use default global ignores的勾选,然后删除掉下方的.a即可,当然与.a一起的那些文件后缀方法也是一样

相关文章

网友评论

  • 脑袋痛:我看我们公司的密码都是加密的怎么改,我们配置的方式也是在pass配置文件中,就是密码不是明文
    脑袋痛:@猪猪侠在这 好的 谢谢,我已经解决了
    脑袋痛:@猪猪侠在这 恩我改了,用的Apache 的http加密
    猪猪侠在这z:@脑袋痛 直接改不了,因为你们公司加了密,所以必须负责密码这一块的人突破解密这一限制或者根据加密的规则去修改pass等几个文件
  • 爱说故事的聪啊:大神,我按照你上面给的步骤都创建好了本地的svn服务器,我本机也可以实现,上传工程,更新,融合等操作,但是别的电脑连不上我本地svn服务器,老是提示:Unable to connect to a repository at URL”(路径)”,请指点?
    爱说故事的聪啊:@猪猪侠在这 谢谢大神,还是路径的问题,我自己把路径弄的复杂了,直接放到桌面上,开启服务后,就ok了!很是感谢大神的分享精神!
    猪猪侠在这z:@hgl890721 首先,你要测试你的电脑能否使用你svn的check、commit等功能,确认一切正常在看你给的地址是否正确:按理说来,我这一篇比较基础,并没有在SVN下边创建分支,所以你给人你的svn地址的时候直接给你的ip就可以了的,连端口号都不用给的
  • 来宝:大神,我的svn别人连不上是怎么回事,只有我自己可以用,我用终端cd到svn路径,然后在终端输入svn info 出现下面的提示 svn: E155007: '/Users/zhuchenglong/Documents/LocationSVN' is not a working copy
    猪猪侠在这z:@来宝 可能是你在使用svnseve -d -r +版本库地址这行指令时,错误的把源代码文件夹地址当成了版本库地址,你改回来就好了。
    “这里的版本库地址是指:你在第一步中添加的文件夹的地址,而不是你的源代码文件夹地址,比如我的就是在 文稿 中的GG Boy文件夹,这个文件夹名称是根据Create as那个命名的来的,而不是Nickname中的”

本文标题:使用第三方工具Cornerstone搭建本地SVN服务器

本文链接:https://www.haomeiwen.com/subject/nyfqrttx.html