Mac OS下SVN的使用:服务的和客户端

摘要:
2、 为svn配置用户权限主要涉及修改/svn/mycode/conf目录中的三个文件。1.打开svnserve.conf并使用[/]表示svn服务器[/]@topgroup=rw中的所有资源库。上述配置表示topgroup组中的所有用户都具有对所有资源库的读写(rw)权限。

在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简单的配置。

我们首先来看下,如何在Mac环境下搭建svn服务器端环境。

一、创建代码仓库,用来存储客户端所上传的代码                                      

我先在/User/apple目录下新建一个svn目录,以后可以在svn目录下创建多个仓库目录

打开终端,创建一个mycode仓库,输入指令:svnadmin create /Users/apple/svn/mycode

指令执行成功后,会发现硬盘上多了个/Users/apple/svn/mycode目录,目录结构如下:

Mac OS下SVN的使用:服务的和客户端第1张

二、配置svn的用户权限                                                                      

主要是修改/svn/mycode/conf目录下的三个文件

1.打开svnserve.conf,将下列配置项前面的#空格都去掉

# anon-access = read
# auth-access = write

# password-db = passwd

# authz-db = authz

 anon-access = read代表匿名访问的时候是只读的,若改为anon-access = none代表禁止匿名访问,需要帐号密码才能访问

2.打开passwd,在[users]下面添加帐号和密码

[users]
mj=123
jj=456

 帐号是mj,密码是123

3.打开authz,配置用户组和权限

 我们可以将在passwd里添加的用户分配到不同的用户组里,以后的话,就可以对不同用户组设置不同的权限,没有必要对每个用户进行单独设置权限。

在[groups]下面添加组名和用户名,多个用户之间用逗号(,)隔开

[groups]
topgroup=mj,jj

明mj和jj都是属于topgroup这个组的,接下来再进行权限配置。

使用[/]代表svn服务器中的所有资源库

[/]
@topgroup=rw

上面的配置说明topgroup这个组中的所有用户对所有资源库都有读写(rw)权限,组名前面要用@

如果是用户名,不用加@,比如mj这个用户有读写权限

[/]
mj=rw

 至于其他精细的权限控制,可以参考authz文件中的其他内容

4.启动svn服务

前面配置了这么多,最关键还是看能否正常启动服务器,若启动不来,前面做再多工作也是徒劳。

在终端输入下列指令:svnserve -d -r /Users/apple/svn

或者输入:svnserve -d -r /Users/apple/svn/mycode

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

5.关闭svn服务

如果你想要关闭svn服务器,最有效的办法是打开实用工具里面的“活动监视器”Mac OS下SVN的使用:服务的和客户端第2张

Mac OS下SVN的使用:服务的和客户端第3张

综合上述,我们就可以轻松搭建svn服务器环境了

三、使用svn客户端功能                                                            

1.从本地导入代码到服务器(第一次初始化导入)

在终端中输入

svn import /Users/apple/Documents/eclipse_workspace/weibo svn://localhost/mycode/weibo --username=mj --password=123 -m "初始化导入"

我解释下指令的意思:将/Users/apple/Documents/eclipse_workspace/weibo中的所有内容,上传到服务器mycode仓库的weibo目录下,后面双引号中的"初始化导入"是注释

2.从服务器端下载代码到客户端本地

在终端中输入svn checkout svn://localhost/mycode --username=mj --password=123 /Users/apple/Documents/code

我解释下指令的意思:将服务器中mycode仓库的内容下载到/Users/apple/Documents/code目录中

3.提交更改过的代码到服务器

在步骤2中已经将服务器端的代码都下载到/Users/apple/Documents/code目录中,现在修改下里面的一些代码,然后提交这些修改到服务器

1> 打开终端,先定位到/Users/apple/Documents/code目录,输入:cd /Users/apple/Documents/code

2> 输入提交指令:svn commit -m "修改了main.m文件"

这个指令会将/Users/apple/Documents/code下的所有修改都同步到服务器端,假如这次我只修改了main.文件

可以看到终端的打印信息:

Sending        weibo/weibo/main.m
Transmitting file data .
Committed revision 2.

4.更新服务器端的代码到客户端

这个应该是最简单的指令了,在终端中定位到客户端代码目录后,比如上面的/Users/apple/Documents/code目录,然后再输入指令:svn update

5.至于svn的其他用法,可以在终端输入:svn help

Mac OS下SVN的使用:服务的和客户端第4张

这里列出一大堆svn指令,后面括号中的内容的一般代表着指令的简称,比如我们可以用svn ci代替svn commit,用svn co代替svn checkout

免责声明:文章转载自《Mac OS下SVN的使用:服务的和客户端》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇数据库表与表连接的方式(内连接、外连接[左连接、右连接、全连接]、交叉连接)fiddler 插件开发二下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SVN版本分支合并

  SVN,开发中常用的工具,也没什么可说的。这里只是记录一下,以免太久不用了想用的时候又忘了。   首先已经有两个目录,一个是分支目录SVNChild,一个是主干目录SVNMain。SVNChild是从SVNMain分出来的一个版本,即整个代码结构(文件夹、代码文件)基本一样的,当然新添加了部分文件、修改文件是正常的。如果不是,则合并的选项都不是一样的。...

linux svn安装和配置

svn概述 众所周知,svn是一种集中式的版本控制工具,是cvs的改进版,那么svn相比cvs的好处在哪里呢? 基于目录的版本控制系统(传统的CVS都是基于单个文件进行版本控制的,而SVN可以随意去除任何一个文件、目录的任何一个历史版本) 原子提交(提交多个文件时,如果一个文件发生冲突,则其他修改都不会被提交) 高效的分支与标签 多种访问方式(svn提...

ubuntu下apache2-php-mysql的环境配置

基本的支持环境。暂时还不应用zend优化,因此这里就不涉及到zend optimizer的安装了。其实在ubuntu系统中中安装远比在windows系统中设置更为容易,而且在终端下设置更省事。 1、安装Apache服务 sudo apt-get install apache2 然后按照提示即完成apahce的安装了。这里 可以打开 http://127...

【转】集群,分布式,微服务概念和区别理解

集群,分布式,微服务概念和区别理解 概念: 集群是个物理形态,分布式是个工作方式。 分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上 1:分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。 分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。 举例:就比如新浪...

SQL Server全文搜索(转载)

看这篇文章之前请先看一下下面我摘抄的全文搜索的MSDN资料,基本上MSDN上关于全文搜索的资料的我都copy下来了并且非常认真地阅读和试验了一次,并且补充了一些SQL语句,这篇文章本人抽取了一些本人自认为是重点的出来并且加入了一些自己的内容,补充MSDN上没有的和整理了网上关于全文搜索的资料网上另一篇说全文搜索的也比较详细SQL Server 全文目录相关...

Python——常用模块

模块,就是一堆实现了某个功能的代码的集合。 一、time & datetime time.time() 返回当前时间的时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。 1473344512.2949986 time.sleep(秒数) 使用该方法可以让程序休眠n秒,n可以是小数。 time.clock() 计算CPU...