您的位置:首页 > 其它

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

2013-12-03 00:37 435 查看
先打开命令行终端。

1、创建svn repository

svnadmin create /yourpath/svnroot/repository

进入下面目录配置svn用户权限。

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

authz,passwd,svnserve.conf。。

2、编辑配置文件 vi svnserve.conf 取消下列行的注释
anon-access = read
auth-access = read
password-db = passwd (密码配置的保存文件)
auth-db = authz (认证配置的保存文件)

### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository.  (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)

### Visit http://subversion.tigris.org/ for more information.

[general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
anon-access = read
auth-access = write
### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control.  Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file.  If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = authz
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa.  The default realm
### is repository's uuid.
# realm = My First Repository

[sasl]
### This option specifies whether you want to use the Cyrus SASL
### library for authentication. Default is false.
### This section will be ignored if svnserve is not built with Cyrus
### SASL support; to check, run 'svnserve --version' and look for a line
### reading 'Cyrus SASL authentication is available.'
# use-sasl = true
### These options specify the desired strength of the security layer
### that you want SASL to provide. 0 means no encryption, 1 means
### integrity-checking only, values larger than 1 are correlated
### to the effective key length for encryption (e.g. 128 means 128-bit
### encryption). The values below are the defaults.
# min-encryption = 0
# max-encryption = 256


注意删除后上面不要留空格,不然会报错:

.subversion/config:94: Option expected


3、编辑密码配置文件 vi passwd

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret
# sally = sallyssecret
#username = password
hilary=3113


4、编辑认证文件 vi authz

格式为 [groups]
用户组名 = 用户组成员
[需要授权的目录]
@组名 = 权限
用户名 = 权限

### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization 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 prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/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
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
test=hilary
[/]
hilary=rw


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

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

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

[/]

@harry_and_sally = rw

* =

5.启动svnserve
svnserve -d -r /opt/svn/repos

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

6、 将项目导入svn库.

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

7、导出项目

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

8、如果是别的机器做的服务器,需要将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

9、有用的命令

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

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

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

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

killall -9 svnserve

10、XCode配置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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: