服务器端:windows 2003 + subversion
安装按照提示一直点下一步!
安装完subversion之后,使用\Subversion\bin\svnadmin.exe工具创建一个版本库,客户端的文档和代码都可以放在这个版本库中
创建方法:命令行定位到svnadmin.exe所在的目录,输入下面的命令行,此处我创建了一个文件夹:c:\project_repository作为版本库
执行完上面的命令后,这个目录里面的内容如下:
下面要配置用户和密码以及相关的目录权限
打开C:\project_repository\conf\svnserve.conf 将下面这几项修改一下
修改前
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
修改后
anon-access = none # 表示不允许匿名访问
auth-access = write # 表示授权用户有读写的权限
password-db = passwd # 表示使用 当前目录 下的passwd文件作为用户名和密码 参数文件
authz-db = authz # 表示使用 当前目录 下的authz文件作为目录权限验证文件
注意一点,将#后面的一个空格也要去掉,即,像anon-access这些配置要顶格写
打开passwd文件,添加用户名和密码
[users]
boss = boss_password
proj_manager = proj_manager_password
chenyong = chenyong_password
user1 = user1_password
user2 = user2_password
此处的user_name1和user_name2就是远程客户端连接SVN要使用的用户名和密码
打开authz文件进行目录权限的配置,关于这个文件,要使用UTF-8 without BOM方式的编码来存放,以防止中文乱码的现象,可以使用notepad++将这个文件转存为UTF-8 without BOM的编码方式
在配置authz这个文件之前,先看一下版本库的目录结构,比如此处我的SVN服务器目录结构如下
根目录就是svn://127.0.0.1,即,版本库的根目录,公司的老板对整个库有完整的操作权限(建议给它只读的权限),下面有一个jiutian的子目录,项目经理对其有完整的操作权限,再下面有chenyong和webproject两个子目录,chenyong这个人对chenyong这个目录有完整的操作权限;web开发小组的人对webproject这个子目录有完整的操作权限,不可互操作,下级目录继承了上级目录的可操作权限;基于这样的分派来创建用户,authz文件配置如下
[groups]
web_common = user1, user2;
[/]
boss = r
[/jiutian]
proj_manager = rw
[/jiutian/chenyong]
chenyong = rw
[/jiutian/webproject]
@web_common = rw
[groups]是将相同权限的用户分一下组,不分也行;此处我将web组的成员分在了一个组里面;
下面是分派权限
[/]
boss = r
表示对于根目录,boss这个用户有只读的权限,下面的目录它也都具有读的权限;
[/jiutian] [/jiutian/chenyong] 这些都是一样的分派方式,都是按用户的权限来分派的
而[/jiutian/webproject] 分派权限的时候是按组分派的,组的前面要加一个@符号,而用户不需要加
还有一个点要说明的是,关于根目录,使用的是[/],而不是[project_repository:/]这种方式,关于这两种不同的用法,是取决于启动SVN服务的时候是否直接指向版本库,还是指向版本库的上一级目录;这个后面马上就会说到,在此MARK一下!
下面要说的就是启动SVN服务了,写一个批处理文件,内容如下:svnserve -d -r c:\project_repository,有一个不好的地方就是,执行了这个命令之后,CMD窗口就一直停在那个地方了,不能关了,也不能隐藏,看着很不爽;可以将这个批处理文件做成一个服务;
方式如下:
首先要两个小工具:instsrv.exe & srvany.exe这两个工具,自行到网上下载
下载下来之后在命令行运行如下命令:instsrv svnservice C:\Windows\System32\srvany.exe,其中svnservice是服务名;
然后打开注册表,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\svnservice
如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。
名称 Application 值为你要作为服务运行的程序地址。
名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径。
名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数
运行services.msc 打开服务列表,可以看到svnservice这个服务,自行修改成自动运行,这样开机后SVN服务就会自动运行了
至此,SVN服务器就部署好了;
不过此处只设置一个版本库,当然也可以设置多个版本库,这就是上面MARK处留下的问题;
比如我创建了一个目录C:\SVN,然后在下面创建了两个版本库的目录project_repository1 & project_repository2,目录结构如下
C:\SVN
C:\SVN\project_repository1
C:\SVN\project_repository2
而创建SVN服务的批处理文件写成下面命令:svnserve -d -r C:\SVN,那就表示有两个版本库了,上面所说的authz文件的配置就要修改一下了,不能直接使用[/]作为根目录,要指定具体要使用哪个版本库,比如[project_repository1:/] 这是一个版本库的根目录,[project_repository2:/]这是另一个版本库的根目录;上面说的那种方式是在创建SVN服务的时候就指定到版本库,所以在配置authz文件的时候就只要写[/]就行了,因为只启动了一个版本库的服务;比如这里两个版本库的目录,可以在创建SVN服务的时候指定到某一个具体工作的版本库svnserve -d -r C:\SVN\project_repository1,这样的话,配置authz就还是使用[/],而不是使用[project_repository1:/] (我觉得我有点唐僧了);
客户端:tortoiseSVN
在客户端安装tortoiseSVN,下载地址:
后面是语言包,下载相同版本的语言包!
我使用的windows2008,在安装这个客户端的时候出现了下面的问题,“无法通过windows installer服务安装此服务包。您必须安装带有更新版本的window installer服务的windows”。出现这个问题,可以到微软网站更新一下windows installer
将更新包下载下来后,可是安装更新包的时候又出现了问题:安装遇到错误:0x80070422,解决办法:创建一个批处理文件,将下面的脚本复制到里面,运行一下
sc config wuauserv start= auto
sc config bits start= auto
sc config DcomLaunch start= auto
net stop wuauserv
net start wuauserv
net stop bits
net start bits
net start DcomLaunch
然后再安装tortoiseSVN,客户端终于安装好了!为了使用tortoiseSVN这个客户端工具,在服务器端也装一下这个;重启一下电脑;创建工作目录;
创建方式:鼠标右击(随便在哪里,在哪个文件夹,或者就在桌面上)->tortoiseSVN->Import
这就是在当前版本库中创建一个目录jiutian;
然后在远程客户端新建立一个空的目录,在目录空白处右击->SVNcheckout
红字处是服务器作为远程的IP地址
然后输入管理给你的用户名和密码就可以将这个服务checkout出来了,在这个目录里面放东西,并上传! OK了!
关于网上说,如果在内网下使用的话,用用svnserve来架SVN服务就可以了,但是它是明文;如果在外网下架SVN服务的话,就要使用APACH服务器了,我上面说的方式是基于svnserve 方式了,我使用抓包工具抓了一下外网下的SVN通信,发现使用的密码用的MD5值,并是明文,此处只是个人架了一个代码管理的服务器,用于自己的日常的代码管理维护,明文就当是开源吧,如果是公司要求的话,我就要再研究一下到底能否将上传的数据给搞到,或者就使用apach服务器吧!
今天一天就干了这些事情!
- 内网架设SVN服务器相关设置
环境说明: 外网IP为静态IP,工作室内有多台电脑,公用一台路由器.想要在某台电脑上架设SVN服务器,方便团队开. 解决方案: 一.准备工作1.获取 Subversion 服务器程序到官 ...
- windows下架设SVN服务器并设置开机启动
原文:windows下架设SVN服务器并设置开机启动 1.安装SVN服务器,到http://subversion.apache.org/packages.html上下载windows版的SVN,并安装 ...
- windows 架设SVN服务器
想完整走一遍svn布置及使用流程,试完整理了一下: step 1:下载安装 1.安装SVN服务器,到http://subversion.apache.org/packages.html 上下载wind ...
- 打破常规——大胆尝试在路由器上搭建SVN服务器
注册博客园挺久了,一直比较懒,虽然有几次想写点文章,但是一直没有行动,今天给大家带来一篇比较有意思的文章,不涉及技术上的,希望大家轻拍.本文的文字和图片全部为原创,尊重作者转载请注明出处! 说起路由器 ...
- windows上SVN服务器以及客户端TortoiseSVN的安装配置
(1)svn的安装 1. 下载软件:Setup-Subversion-1.7.5.msi,安装就很容易了,一路NEXT 2. 把SVN的bin文件夹路径添加到环境变量中 把svn安装目录下的bin路径 ...
- 在路由器上搭建SVN服务器
在路由器上搭建SVN服务器 SVN托管服务大家都不陌生了,我最早开始用的是谷歌提供的SVN,因为在上面托管的项目都是开源的,所以当有些项目不方便在网上公开的时候,就需要自己搭建SVN服务器了.wind ...
- centos5.11架设svn(svn系列 架设服务器 知识一总结)
♣svn是什么? ♣安装 --yum安装 --创建svn版本库目录 --创建版本库 --进入conf目录进行配置(该svn版本库配置文件) --启动svn版本库 - ...
- 怎样搭建本地svn服务器环境-轻松掌握版本管理
版本管理一直是程序员使用频率比较高的一个工具软件.不管你是自己使用还是提供给别人使用,svn服务器的架设是一个入门功课.今天我们先来介绍一下怎么样在本地搭建svn服务器.这种应用一般是网络不是很好,提 ...
- SVN服务器和客户端安装教程
SVN是什么?有何用? SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁 ...
随机推荐
- ROS关于cv_brige的使用
最近想使用OpenCV 和ROS实现点云的拼接,实现三维重建,那么在学习了kinect的基本的使用方法以后我们知道,直接使用ROS 的包即可得到点云,深度图,rgb图等信息, roslaunch op ...
- Java设计模式(22)命令模式(Command模式)
Command模式是最让我疑惑的一个模式,我在阅读了很多代码后,才感觉隐约掌握其大概原理,我认为理解设计模式最主要是掌握起原理构造,这样才对自己实际编程有指导作用.Command模式实际上不是个很具体 ...
- mysql游标的使用
这是一个游标的使用例子. 但是其中有几点需要注意,就是为什么要加入 declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tmpname = null;这 ...
- 6、Qt Meta Object system 学习
原文地址:http://blog.csdn.net/ilvu999/article/details/8049908 使用 meta object system 继承自 QOject 类定义中添加 Q_ ...
- 《FPGA全程进阶---实战演练》第四章之实验平台软硬件使用简介
本章主要是讲解读者在进行FPGA逻辑设计之前的准备工作,需要下载Quartus II软件和 Modelsim 软件,一个是用来进行FPGA逻辑设计,一个是用来对逻辑进行理论分析与验证. 1.1 qua ...
- Ubuntu下Ruby的下载和编译源码安装
1.Ruby的下载 Ruby可以在Ruby 官网上下载,如果想获取更多的Ruby版本,可以到淘宝镜像网站下载. 2.Ruby的编译源码安装 解压 首先把下载下来的源码压缩包解压到自己指定的目录 编译安 ...
- Going deeper with convolutions 这篇论文
致网友:如果你不小心检索到了这篇文章,请不要看,因为很烂.写下来用于作为我的笔记. 2014年,在LSVRC14(large-Scale Visual Recognition Challenge)中, ...
- 转:用法总结:NSNumber、NSString、NSDate、NSCalendarDate、NSData(待续)
NSNumber + (NSNumber *)numberWithInt:(int)value; + (NSNumber *)numberWithDouble:(double)value; - (in ...
- 使用Eclipse的JUnit实例
在本节中,我们将展示使用JUnit的一个完整的例子.我们将详细了解如何创建和运行测试,我们将展示如何使用特定的注释和JUnit断言. 1. 初始步骤 让我们创建一个名为 JUnitGuide 的Jav ...
- SQLException: Column count doesn't match value count at row 1
INSERT INTO table_name(col_name1, col_name2, col_name3) VALUES('value1','value2'); 语句中,前后列数不等造成的 转自: ...