先打开命令行终端。
1、创建svn repository
svnadmin create /yourpath/svnroot/repository
2、配置svn用户权限。
/ yourpath /svnroot/repository/conf/目录下存在3个文件:
authz,passwd,svnserve.conf。。
1)svnserve.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
2)passwd:
按示例添加用户名和密码
### 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
3)authz:
### 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进程
8、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客户端好用得多。