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

    linux安装FTP工具 lftp及使用教程 来源:网络 发布时间:2013-05-24 15:21 字体:[大  中  小] 点击2510次 linux下可以直接通过FTP命令进行ftp上传下载,不 ...

  2. ctrl + d 在phpstorm 和 eclipse 中的不同含义

    Ctrl + d 在phpstrom是复制一行,非常的方便,但是eclipse中却是删除一行,非常的特别.感觉上,phpstorm更注重鼠标,但eclipse貌似更多鼠标和键盘的操作, 默认情况下[p ...

  3. A7600官方ROM_VIBEUI_V2.5_1537联通版使用体验

    A7600官方ROM_VIBEUI_V2.5_1537联通版使用体验 A7600我原来的ROM是西关少爷精简的VIBEUI1521,已经root,后来不小心恢复了出厂设置,然后就出现异常了,用twrp ...

  4. Android相机开发那些坑

    版权声明:本文由王梓原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/168 来源:腾云阁 https://www.qclou ...

  5. html页面,左边点击链接,右边显示内容参考代码。

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  6. Windows环境配置Apache+Mysql+PHP

    一.安装配置Apache2.4.7(httpd-2.4.7-win64-VC11.zip ) 1.解压下载的安装包:httpd-2.4.7-win64-VC11.zip将其放到自己的安装目录(我的目录 ...

  7. Nodejs开发框架Express3.0开发手记–从零开始

    转载请注明出处: http://blog.fens.me/nodejs-express3/ 程序代码已经上传到github有需要的同学,自行下载. https://github.com/bsspiri ...

  8. Java常用集合类详解

    在Java中有一套设计优良的接口和类组成了Java集合框架,使程序员操作成批的数据或对象元素极为方便.所有的Java集合都在java.util包中. 在编写程序的过程中,使用到集合类,要根据不同的需求 ...

  9. iOS开发中深入理解CADisplayLink和NSTimer

    一.什么是CADisplayLink 简单地说,它就是一个定时器,每隔几毫秒刷新一次屏幕. CADisplayLink是一个能让我们以和屏幕刷新率相同的频率将内容画到屏幕上的定时器.我们在应用中创建一 ...

  10. hdu5876 Sparse Graph(补图最短路 bfs)

    题目链接:hdu5876 Sparse Graph 详见代码.. #include<cstdio> #include<cstring> #include<algorith ...