这几天领导没有安排工作,闲着没事就想把自己这两年做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. NDK与JNI

    什么是NDK(android native develop kits) :android 本地开发工具集,可以把c/c++编译成一个linux下可以执行的二进制文件 java代码里面就可以通过jni ...

  2. xUtils更新到3.0后的基本使用规则

    说实话,对于xUtils,是我最近才用到的开发框架(也是刚接触),对于其功能不得不说,简化了很多的开发步骤,可以说是非常好的开发工具,但是其最近更新到3.0也没有解决加载自定义ImageView报错的 ...

  3. windows 下使用 Filezilla server 搭建 ftp 服务器

    windows 下使用 Filezilla server 搭建 ftp 服务器 1. Filezilla server 免费,开源, ftp 服务端 2. 下载安装, windows  https:/ ...

  4. 在IIS7.5打开网页的时候,提示: HTTP 错误 500.0 - Internal Server Error 调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.dll" 上。解决方法

  5. js用ajax和不同页面的php互相传值的方法

    js里的代码:<script> var json; //获取所有class名为zhi的标签 var zhi = document.getElementsByClassName('zhi') ...

  6. Python第三方常用工具、库、框架等

    Python ImagingLibrary(PIL):它提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换.打印和显示.还能进行一些图形效果的处理,如图形的放大.缩小和旋 ...

  7. sublime2配置python环境

    只需要在以下文件写入python编译器的路径: 在工具栏点击Preferences,打开Browse Packages.在打开的文件夹中找到Python,并打开这个文件夹.找到文件Python.sub ...

  8. 20145218 《Java程序设计》第三周学习总结

    20145218 <Java程序设计>第三周学习总结 教材学习内容总结 定义类 编写程序要产生对象就要先定义类.类是对象的设计图,对象是类的实例.类定义时使用class关键词,建立实例时, ...

  9. 全面理解面向对象的 JavaScript

    前言 当今 JavaScript 大行其道,各种应用对其依赖日深.web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而忽略了对原生 JavaScript 的学 ...

  10. linq分页扩展(转)

    原文地址:http://www.cnblogs.com/RainbowInTheSky/p/4590508.html public static List<T> ToPagedList&l ...