这几天领导没有安排工作,闲着没事就想把自己这两年做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. 经验解决Fragment被Replace后仍旧可见的问题

    经验解决Fragment被Replace后仍旧可见的问题 网上问的问题,大多会提到替换了Fragment而发现之前被替换的仍旧显示在那里.我个人使用android 2.3 +support 开发包,在 ...

  2. 十问 Linux 虚拟内存管理 (glibc) (二)

    版权声明:本文由陈福荣原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/184 来源:腾云阁 https://www.qclo ...

  3. 图片左右滚动的js代码

    html代码 <div class="demo" id="demo" style="overflow:hidden; width:660px; ...

  4. OneProxy读写分离配置操作手册

    1.确保已配置好主备集群 A)配置 可参考MySQL官方文档(https://dev.mysql.com/doc/refman/5.6/en/replication-howto.html) 或者我的博 ...

  5. Eclipse 添加SVN

    第一种方法没试 第二种方法  可以使用 现在版本 最新为 1.10.x 1.下载最新的Eclipse,我的版本是3.7.2 indigo(Eclipse IDE for Java EE Develop ...

  6. 为SpringMvc项目安装BootStrap和AngularJs前端框架

    在我们"用SpringMVC写一个注册的小Demo"之前,我们学习一下如何给该项目安装Bootstrap和AngularJs的前端框架,这样我们就能轻松排版出漂亮的登录界面.我们采 ...

  7. jsp有关resquest与session和application的区别和相似性

    1. request 的setAttribute与getAttribute方法一般都是成对出现的,首先通过setAttribute方法设置属性与属性值,然后通过 getAttribute方法根据属性获 ...

  8. hdu 1561 The more, The Better (树上背包)

    The more, The Better Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  9. nyoj------203三国志

    三国志 时间限制:3000 ms  |  内存限制:65535 KB 难度:5  描述 <三国志>是一款很经典的经营策略类游戏.我们的小白同学是这款游戏的忠实玩家.现在他把游戏简化一下,地 ...

  10. nyoj------布线问题(kruscal+求最小值)

    布线问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 南阳理工学院要进行用电线路改造,现在校长要求设计师设计出一种布线方式,该布线方式需要满足以下条件:1.把所有 ...