这几天领导没有安排工作,闲着没事就想把自己这两年做iOS开发时感觉知识有欠缺的地方想好好深入地补习一下,昨天和今天就计划好好学习下SVN和git的从创建和到原理,到命令,到界面的使用。一不小心被另一领导发现我在研究这个,又看我没事就想让我帮忙帮她的组把SVN权限给改一改,我也挺乐意,能让自己所学的东西派上用场那是何等的幸运,而且她也让我更相信准备着被人宰,总比等死好,起码能卖个价钱(微笑)。

  我们多数开发公司都是在windows下使用VisualSVN搭建代码版本控制服务器环境的,这一块我也已经算是比较熟悉。但今天了解到我公司的版本控制是托管在Linux下的,满满的信心稍微有一点打折,不过还好,我全能的特点虽然有时候让我不专业,但是有时侯也是能派上用场的(得意),现在在公司干iOS开发的我,其实之前干过两年的Linux系统管理员,所以相信稍微熟悉下SVN命令应该问题不大,所以一咬牙一跺脚就爽快地接下这个活了。

  通过了解发现在Linux下使用SVN基本和在Mac环境下是一模一样(我又得意一次,因为做iOS肯定用过一些svn命令的嘛),而且Mac还内置SVN服务器和客户端工具(难得体会到使用Mac的优越感),不过Linux系统多数版本需要自己安装SVN服务器工具的(如果有时间有心情我会安装下Linux系统玩玩再写一篇Linux下安装svn的方法,目前您可以参考这两篇:yum安装svn方法http://www.cnblogs.com/jiqing9006/p/3370627.html或者源文件安装方法:Linux下SVN安装配置http://www.cnblogs.com/xd502djj/archive/2011/01/21/1941404.html)。既然命令一样我就懒得搭建Linux环境了,反正这个活也不需要我从头来,那直接使用的我的Mac进行实验了。唠叨的人碎碎念一圈,开始办正事吧!

搭建SVN服务器并建立代码仓库

首先我们先创建一个SVN服务器目录,作为SVN代码的总目录,以后可以在下面建立多个仓库目录。这里我创建目录/User/jackiehoo/Documents/SVNServer 。输入命令:

mkdir ~/Documents/SVNServer

然后我们就在这个目录下开始工作吧,我这里创建一个SVNTest仓库,输入命令:

svnadmin create /Users/hoojackie/Documents/SVNServer/SVNTest

指令执行成功后,我们可以发现硬盘上多了/Users/hoojackie/Documents/SVNServer/SVNTest,目录结构如图:

如果您看到上图类似的目录,说明您代码仓库创建完毕,下一步就是要配置svn。

配置svn的用户权限

注意到了上图中的conf目录吗,它里面有个三个文件authz , passwd  ,  svnserve.conf,它们管理着我们的多数svn配置设置。下面我就介绍一下常用配置吧,具体您可以参考SVN手册。

1.配置版本库配置文件

进入conf目录,输入命令

vi svnserve.conf

打开svnserve.conf,将下面的内容前面的#和空格(一定要顶格,不要有空格,否则会出问题,切记啊,亲)去掉。

# anon-access = read  

# auth-access = write  

# password-db = passwd  

# authz-db = authz 

其中,anon-access = read代表匿名访问的时候是只读的,若改为anon-access = none代表禁止匿名访问,需要帐号密码才能访问;auth-access = write 使授权用户有写权限;password-db = passwd指明密码文件路径;uthz-db = authz  访问控制文件。

2.配置用户

打开passwd配置文件:进入conf目录,输入命令

vi passwd

我是这么修改的。

在[users]下面配置您需要添加的svn账户,=等号左边表示用户名,右边表示密码。

最后我们可以在authz文件中设置用户和组的权限了。

打开authz文件,进入conf目录,输入命令:

vi authz

我们可以在[groups]行下将我们之前添加的用户的添加到组里。=等号左边是组名,右边是用户名,多个用户用英文逗号(,)隔开。 比如我是这么设置组的,三个组Manager,UI,Web。

[groups]

Manager = jackihoo

UI = zhangsan,lisi

Web = wanger,mazi

组配置完了,然后我们需要设置用户和组对仓库的访问权限了。继续编辑authz文件。比如我是这么设置的。

[/]  

@Manager = rw

@UI = rw

@Web = r

到此我们的svn基本配置完毕,现在我们只需要启动我们的svn服务器。(忙活半天,成败就在此一举了)。

启动我们的svn服务器

在终端输入下列指令:

svnserve -d -r /Users/hoojackie/Documents/SVNServer

或者输入:

svnserve -d -r /Users/hoojackie/Documents/SVNServer

哈哈,我刚敲出这个命令,没有任何提示,如果您也是,代表应该启动成功了。我们可以通过Mac的活动监视器查看一下:

进程存在,说明我们已经成功搭建了我们的svn服务器环境了。您也看点击上图的退出进程,关闭svn服务器。

使用svn客户端进行测试

测试1:测试从本地倒入代码到服务器

  这里我就先继续使用命令行了,当然您也可以使用界面工具测试。我拿我做过的一个个人项目《丁丁印记》作为本地代码导入到svn服务器(这个工作在实际项目中一般由技术负责人对项目进行第一次初始化导入,我这里把自己乱入一下(微笑))。

在终端输入命令

svn import /Users/hoojackie/Documents/Development/MomentsLife\(丁丁印记\)/MomentsLife\(丁丁印记\)/ svn://localhost/SVNTest/MomentsLife --username=jackiehoo --password=jackiehoo -m “第一初始化导入代码”

前面一个路径代表本地代码的路径,右边目录代表远程svn服务器的目录路径,这里我在本地测试,所以是localhost,实际环境中您需要换成远程svn服务器的IP地址。

然后如果您看到下图类似效果,代表您正在上传代码:

其实我前两次敲这个命令出现错误提示:

svn: E170001: Authorization failed

原因是我在配置authz访问目录权限时,我们有在组名前加@这个符号。所以如果您也遇到这个错误,请注意检查用户名,组名等其他设置是否正确。

  上传完成后您会看Committed revision 1.字样,代表上传成功了。在此恭喜您。。不过别放松警惕,继续让其他成员测试下他们的读写权限吧。请您参考试试吧。下面还有几个需要您测试的我就不一个一个做了。

测试2:从服务器端下载代码到客户端本地

( 待完成)

测试3:测试更改过的代码到服务器

(待完成 )

测试4:更新服务器端的代码到客户端

(待完成)

svn的其他用法

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

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

Mac下SVN服务器环境的搭建和配置(除展示图片外,所有命令在Linux/Unix下适用)的更多相关文章

  1. Linux下服务器环境的搭建和配置之一——Apache篇

    最近一个多月(2016-06-20开始至今),一直在忙海外广告平台FAQ系统的开发,既要负责服务器环境的搭建,又要写前端,还要写后台和数据库,甚至还要考虑产品需求和设计.所以是一个很大的挑战,对自身也 ...

  2. windows 10下sublime text3环境的搭建以及配置python开发环境

    1 - 安装Sublime Text 3 到官网下载对应的版本,如下: OS X (10.7 or later is required) Windows - also available as a p ...

  3. 【svn】Centos搭建svn服务器环境

    1.需求描述 在Centos系统中搭建svn服务器环境 2.搭建过程 2.1 yum安装svn [root@localhost /]# yum install svn  2.2 新建目录存储svn目录 ...

  4. Mac 搭建 SVN 服务器环境

    Mac 搭建 SVN 服务器环境 一.创建svn repository svnadmin create /path/svn/pro //仓库位置,svn是svn的目录,pro是一个版本库的目录 PS: ...

  5. Mac 环境下svn服务器的配置

    Mac 环境下svn服务器的配置 本文目录 • 一.创建代码仓库,用来存储客户端所上传的代码 • 二.配置svn的用户权限 • 三.使用svn客户端功能 在Windows环境中,我们一般使用Torto ...

  6. Mac搭建svn服务器环境

    Mac搭建svn服务器环境 svn是Subversion的简称,是一个开放源代码的版本控制系统, Mac系统自带了svn的服务端和客户端功能, 因此不需要下载第三方软件,就可以支持svn进行版本的管控 ...

  7. Windows下SVN服务器搭建方法整理(apache)

    http://skydream.iteye.com/blog/437959 http://www.cnblogs.com/liuke209/archive/2009/09/23/1572858.htm ...

  8. CentOS下Web服务器环境搭建LNMP一键安装包

    CentOS下Web服务器环境搭建LNMP一键安装包 时间:2014-09-04 00:50来源:osyunwei.com 作者:osyunwei.com 举报 点击:3797次 最新版本:lnmp- ...

  9. linux(centos7)下SVN服务器如何搭建

    linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! ...

随机推荐

  1. CSocket必须使用stream socket不能够使用数据报 socket

    如果使用MFC socket类CSoket通讯,必须使用stream socket,不能够使用 SOCK_DGRAM 类型socket.原因如下: 1 stream socket和数据报socket的 ...

  2. mysql使用笔记(三)

    一.数值类型 1. 数值类型     标准sql中包含数据类型 INTEGER, SMALLINT, DECIMAL, NUMERIC,以及FLOAT, REAL, DOUBLE.mysql在此基础上 ...

  3. java 字符串(正则表达式)未完

    正则表达式: 其实就是用于操作字符串的一个规则.(以某种方式描述字符串) 基础: 1.描述一个整数:\d(表示一位数字) \\d(\\ 表示要插入一个正则表达式)表示一位数字 \\\\  插入一个普通 ...

  4. 使用Objective-C的文档生成工具

    前言 做项目的人多了,就需要文档了.今天开始尝试写一些项目文档.但是就源代码来说,文档最好和源码在一起,这样更新起来更加方便和顺手.象Java语言本身就自带javadoc命令,可以从源码中抽取文档.今 ...

  5. 20145218 《Java程序设计》第02次实验报告

    北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 一.实验内容 初步掌握单元测试和T ...

  6. postgresql 触发器

    一.创建事件触发器 1.ddl_command_start - 一个DDL开始执行前被触发: 2.ddl_command_end - 一个DLL 执行完成后被触发: 3.sql_drop -- 删除一 ...

  7. 定向转发和重定向实现 <select >下拉表单数据传送

    定向转发的特点:   (1). 实行转发时浏览器上的网址不变  (如果你这点忽视了,那你就要接受我无尽的鄙视吧! 哇咔咔~~~)    (2). 实行转发时 :   只有一次请求.  不信,看这下面的 ...

  8. MyEclipse自动补全与快捷键设置

    一般默认情况下,Eclipse ,MyEclipse的代码提示功能是比Microsoft Visual Studio的差很多的,主要是Eclipse ,MyEclipse本身有很多选项是默认关闭的,要 ...

  9. Java 集合系列 05 Vector详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  10. Maven(1)-安装和配置

    Maven(1)-安装和配置 一.本机必须安装好Jdk 二 .maven下载 http://maven.apache.org/download.cgi ,下载后把maven-bin解压到自己的目录即可 ...