Mac下搭建svn服务器和XCode配置svn

时间:2022-09-19 19:11:16

Mac下搭建svn服务器和XCode配置svn

 

先打开命令行终端。

1、创建svn repository

svnadmin create /yourpath/svnroot/repository

 

2、配置svn用户权限。

/ yourpath /svnroot/repository/conf/目录下存在3个文件:

authz,passwd,svnserve.conf。。

 

1svnserve.conf

将里面的

# anon-access = read

# auth-access = write

# password-db = passwd

……

# authz-db = authz

 

四行前的#号去掉,再将anon-access = read改为anon-access = none(禁止匿名访问,这里如果不改的话,会出现无法读取日志,比如在Mac上用Versions软件时,读不了时间线Timeline)。在#号后是有空格的,也得去掉,让文字顶格。

如果不使用authz-db = authz则不需要去掉该行的#号,也不需要配置第3)步的authz文件。

修改后如下:

anon-access = read

anon-access = none

auth-access = write

password-db = passwd

……

authz-db = authz

 

2passwd

按示例添加用户名和密码

### This file is an example password filefor svnserve.

### Its format is similar to that ofsvnserve.conf. As shown in the

### example below it contains one sectionlabelled [users].

### The name and password for each userfollow, one account per line.

 

[users]

harry = harryssecret

sally = sallyssecret

 

3authz

### This file is an example authorizationfile for svnserve.

### Its format is identical to that ofmod_authz_svn authorization

### files.

### As shown below each section definesauthorizations for the path and

### (optional) repository specified by thesection name.

### The authorizations follow. Anauthorization line can refer to:

### - a single user,

### - a group of users defined in a special [groups] section,

### - an alias defined in a special [aliases] section,

### - all authenticated users, using the '$authenticated' token,

### - only anonymous users, using the '$anonymous' token,

### - anyone, using the '*' wildcard.

###

### A match can be inverted by prefixingthe rule with '~'. Rules can

### grant read ('r') access, read-write('rw') access, or no access

### ('').

 

[aliases]

# joe = /C=XZ/ST=Dessert/L=SnakeCity/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

 

[groups]

harry_and_sally =harry,sally

# harry_sally_and_joe =harry,sally,&joe

 

# [/foo/bar]

# harry = rw

# &joe = r

# * =

 

### 对所有版本库的权限设置用[/]

### group名称前要加@,用户名不加。

* = 是为所有人设置权限,这里是设置其他所有人没有读写权限。

[/]

@harry_and_sally = rw

* =

 

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

 

3、启动服务器。

svnserve -d -r / yourpath/svnroot/repository

没有任何提示就说明启动成功了。

 

4 将项目导入svn.

svn import /ProjectPathYouNeedToImport/  svn://localhost/svnroot/respository/ProjectName --username username --password password -m "comment information"

 

5、导出项目

svn checkout svn://localhost/svnroot/respository/ProjectName --username=username--password=password  /ThePathCheckoutTo/

 

6、如果是别的机器做的服务器,需要将localhost替换为服务器路径。

可编辑如下文件,添加名称到ip地址的映射。

sudo vi /etc/hosts

如添加红色部分

##

# Host Database

#

# localhost is used to configure theloopback interface

# when the system is booting.  Do not change this entry.

##

127.0.0.1        localhost

255.255.255.255      broadcasthost

::1             localhost

fe80::1%lo0   localhost

192.168.14.1 svnip

 

7、有用的命令

svn ls svn:// svnip/svnpath 可以查询snv仓库内容

lsof -i :3690 查看svn是否启动

ps aux | grep ‘svn’ 查找所有svn启动的进程id

kill -9 pid pid替换为上面查到的进程id可以杀掉svn进程

 

8XCode配置svn

1)打开XCode

2)打开organizer,在左下角点+号,点AddRepository…

3)在弹出的界面中:

name可以随便起,Location输入为svn:// svnip/svnpath/ProjectName(路径名称什么的),按提示操作完成。

4)点organizer,在左下角点+号,点Checkoutor Clone Repository…

5)在弹出的界面中:

Location输入svn:// svnip/svnpath/ProjectName,点击Checkout,在弹出的界面中选择想要保存到哪个路径。

这样就在本地得到了一份svn服务器上的项目,可以修改,更新,提交代码了(更新提交的操作在XCode菜单-->[File]-->[Source Control]下面)。


XCode自带的svn管理功能在update和cimmit时经常出问题,不知道是不是我使用方式不对。所以特别推荐一个svn客户端工具Versions,个人觉得比XCode自带的svn客户端和svn X客户端好用得多。

http://www.versionsapp.com