服务器端: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迁 ...
随机推荐
- 使用 Gearman 实现分布式处理
因为近来在研究 Mogilefs 的分布文件系统,在读读这个的源码,另外,为公司新设计了一个下载的系统,所以更加要深入研究一下,因为这个好东西是 Perl 写的,真不容易,在读这个的时间发现了几个好东 ...
- San初步使用
考虑使用这个玩意只有两个理由: 组件反解.可以让服务端模板渲染首屏,随后由框架接手控制. 从IE7(作者在评论中有提到)开始支持. 在改造老项目上特别吸引人,只需要移除哪些繁杂的dom操作由m ...
- R语言提取包含某字符串的行变量
已解决,用grep函数 A=read.table("clipboard",sep="/t",header=T) A[grep(pattern="/re ...
- ubuntu安装mxnet GPU版本
安装mxnet GPUsudo pip install mxnet-cu80==1.1.0 推荐pip安装mxnet,土豪gpu版本: pip install mxnet-cu90==1.0.0 豪华 ...
- WEB打印大全
1.控制"纵打". 横打”和“页面的边距. (1)<script defer> function SetPrintSettings() { // -- advance ...
- Mybatis增删改查(CURD)
前面的小节我们已经讲到用接口的方式编程.使用这种方式,需要注意的一个地方就是,在User.xml 配置文件中,mapper namespace="com.yiibai.mybatis.int ...
- Python——dummy_thread( _dummy_thread in Python 3.+)
dummy_thread 模块在Python 3中改称为 _dummy_thread 模块,Python 的 2to3 工具能够帮你自动的更改旧代码中的模块名称.不过更推荐使用高层次的 dummy_t ...
- 转载: 让我们聊聊Erlang的nif中资源的安全释放
让我们聊聊Erlang的nif中资源的安全释放 http://my.oschina.net/u/236698/blog/479221
- MySQL查询优化之explain详解
MySQL explain命令显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了: ...
- ant学习笔记-taskdef
1.声明task jar包中指定的task <taskdef name="xmltask“ classname="com.oopsconsultancy.xmltask.an ...