如何在windows上安装部署设置SVN服务器
一、准备工作
2、SVN客户端:TortoiseSVN,即常说的小乌龟,是一个客户端程序,用来与服务器端通讯。
二、安装服务器和客户端程序
1、SVN服务器:直接解压缩到某个文件夹下即可。示例路径:c:\svn\
备注:如果下载的是msi程序,直接运行按提示安装即可。
2、SVN客户端:直接运行按提示安装即可。示例路径:C:\Program
Files\Subversion
三、建立版本库(Repository):示例路径:e:\svnroot。建立版本库有两种方法:
方法一,建立空目录e:\svnroot\repos1,进入repos1文件夹,在空白处点击右键,选择“TortoiseSVN->Create
Repositoryhere”,
方法二,建立空目录e:\svnroot\repos2,进入DOS命令行,输入如下命令:
svnadmincreate
e:\svnroot\repos2
四、运行SVN服务器,启动服务。启动服务有两种方法:
方法一,临时启动服务,在DOS下输入如下命令:
svnserve
-d
-r
e:\svnroot\repos1
--listen-host
ip地址
--listen-port=端口号
说明:“listen-host”和“listen-port”可选。默认端口是3690,如果端口已经被占用,可以通过选项listen-port指定端口号。
注意:请不要关闭命令行窗口,关闭窗口会把
svn服务就停止了。
方法二,启动SVN服务为后台运行程序:
sc
create
svnserve
binPath=
"c:\svn\bin\svnserveexe
--service
-r
e:\svnroot\repos1"
displayname=
"Subversion"
depend=Tcpip
start=
auto
说明一:
(1)sc是windows自带的服务配置程序。svnserve是服务的名称,可根据需求取名。
(2)参数binPath表示svnserve可执行文件的安装路径。
(3)--service表示以windows服务的形式运行,--r指明svnrepository的位置,service参数与r参数都作为binPath的一部分,因此与svnserveexe的路径一起被包含在一对双引号当中。
(4)displayname表示在windows服务列表中显示的名字,depend=Tcpip表示svnserve服务的运行需要tcpip服务,start=auto表示开机后自动运行。安装服务后,svnserve要等下次开机时才会自动运行。
说明二:
(1)binPath的等号前面无空格,等号后面有空格。displayname、depend、start也一样,service前面是--,不是-
,而r前面是-。
(2)若要卸载svn服务,则执行
sc
delete
svnserve
即可。
(3)从“sc”到“auto”是在同一个命令sc,必须写在同一行。
(4)启动服务命令:netstart
svnserve,停止服务命令:net
start
svnserve,也可以进入Windows提供的界面操作SVNService服务了,即控制面板—>服务。
(5)如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中如果svnserveexe在“c:\programfiles\svn\”中,则命令应该写为“binpath="\"c:\programfiles\svn\bin\svnserveexe\"
五、配置用户和权限
(1)修改svnserveconf,在e:\svn\repos1\conf目录下,用文本编辑器打开svnserveconf:
将:
#
anon-access
=
read
#
auth-access
=
write
#
password-db
=
passwd
改为
anon-access
=
read
auth-access
=
write
password-db
=
passwd
注意说明:
anon-access等列前面是没有空格的。
anon-access
=
read表示没通过用户名密码登录的访问只有读的权限,如果改为none则没有用户名密码不能访问
auth-access
=
write表示通过用户名密码登录的有写的权限(当然读的权限也就有了)
password-db
=
passwd表示可以通过
用户名
=
密码
的方式在passwd文件中添加用户
(2)修改同目录的passwd文件,增加用户帐号:
将:
[users]
#
harry
=
harryssecret
#
sally
=
sallyssecret
添加帐号:
[users]
#
harry
=
harryssecret
#
sally
=
sallyssecret
admin
=
admin
添加一个admin账户,密码是admin。
6
六、初始化SVN,导入数据
选中要上传SVN的文件夹,“右键
->TortoiseSVN
->
Import”
,在弹出对话框的“URL
of
repository”输入“svn://localhost/project1/”。在“Importmessage”输入注释,点击OK,要求输入帐号,输入账户admin和密码admin。
7
七,测试SVN
本地测试:新建一空文件夹test1,单击右键,选择“SVN
Checkout”,在“URL
of
repository”中输入“svn://localhost/project1”。
其他机器测试:如果运行svnserve的主机IP地址是1234,则URL输入的内容就是“svn://1234/project1”。
安全不安全是相对的,没有绝对的安全,通常是要在安全与成本、安全与便捷之间做平衡的。
SVN服务器暴露在外网,那么最大的风险来自于对服务器本身的攻击,如果攻破了服务器自身防护,那上面的应用就都暴露了。
可以考虑SVN用https协议代替http协议,这样会稍微好一些,至少用户名密码是通过加密方式从客户端传送到服务器端的。
可以考虑在SVN服务器外面加个防火墙。
可以考虑把SVN服务器放在公司内网,开发者用***方式连接到公司内网访问SVN。
加强安全的方法很多,看你们能接受的成本和便捷性了。
如果只是一个人用的话不需要装subversion,在使用时在URL of repository栏内填写file:///+你设定的repository文件夹的绝对路径就行。而使用subversion的话在路径栏里则填写的是svn://hostIP/+repository文件夹的相对路径。subversion就是一个简单的服务器,如果在局域网内搭建svn版本控制的话使用它就很方便,如果只是自己用就没必要,配置过程还是比较麻烦的,我当时就配了一天,出了好多问题。如果你特想用的话,下面是我的一些心得。
1 下载并安装TortoiseSVN。
2 下载并安装Subversion。
注意Subversion的版本号要与TortoiseSVN尽量对应,若Subversion的版本过低则TortoiseSVN不能正常地在Subversion上进行操作。我使用的tsvn是171,一开始用13的subversion就不行,后来重新装了个17版本的subversion就好了
3 建立版本库。
创建一个目录作为版本库,对使用版本控制的工程文件进行备份。首先在一个合适的位置创建版本库目录,如”d:/Mydocument/SVNRepository”;右键该文件夹选择TortoiseSVN->Create repository here。
4 配置版本库权限。
版本库建立好后在该目录下会自动生成几个文件,其中conf目录下的文件为权限配置文件。修改svnserveconf文件:
[general]
anon-access=none
auth-access=write
password-db=passwd
第一句禁止匿名用户对版本数据库的读写,第二句运行授权用户对版本数据库的读写,第三行标明授权用户的数据库文件名。
修改passwd文件
[users]
username=password
每行都是一个用户名=用户密码。
注意:删除原始文件中的#,#为注释的意思,如#auth-access=write不会起任何作用。
不要取消svnserveconf文件中[sasl]下的注释,否则在连接服务器时会出现missing SASL mechanisms的错误。
5 启动Subversion服务器
Subversion可以通过控制台启动,输入svnserve –d就可以启动服务器,但是一旦该控制台关闭,服务器也就关闭了,这样做非常不方便。我们可以将其作为window服务加入注册表中,这样每次Window启动时会自动启动Subversion服务器了。在控制很多教程在介绍Subversion启动时提到了SVNServicesexe,这个程序实质上就是做这件事请,我们完全可以不使用该程序,直接在控制台下输入一段简单的指令即可。
假设你现在Subversion的安装目录为”D:/Program Files/Subversion”,版本库位置为”d:/Mydocument/SVNRepository”,现在打开控制台,输入 :
sc create SVNService binpath=” D:/Program Files/Subversion/bin/svnserveexe --service –r d:/Mydocument/SVNRepository” displayname=”SVNService” depend= Tcpip start=auto
注意:每个=后面都必须有空格如start= auto,否则会出错。
回车后成功建立服务,打开任务管理器,在服务标签下可以找到SVNService的服务。
“–r d:/Mydocument/SVNRepository”这句话的作用是将服务器默认路径设置到改目录下,比如现在你需要从SVN服务器CheckOut一个工程,该工程在d:/Mydocument/SVNRepository/Project1目录下,那你在TortoiseSVN路径选择中需要输入svn://hostIp/d:/Mydocument/SVNRepository/Project1,而加入该句话后你只需要输入svn://hostIp/Project1即可,既方便又隐藏了该项目在服务器中的绝对路径。
6 Import项目工程
启动好Subversion服务器后就开始向服务器中导入工程数据了。右键工程根目录或文件,选择TortoiseSVN -> Import进行导入,导入路径URL选择svn://hostIp/ProjectName即可。此时如果出现无法连接目标主机错误,检查Subversion服务器是否开启,在任务管理器中找到任务->SVNService,右键选择启动服务。如果出现文件版本不一致,则意味着Subversion版本太低,重新下载匹配当前TortoiseSVN的版本。如果出现SASL机制不匹配则在svnserveconf文件中将[sasl]下的条目全部用#注释掉。
7 使用SVN
现在你便可以在局域网内的任何一台装有TortoiseSVN的主机上进行项目开发了。使用CheckOut从服务器上下载工程,Update更新工程,Commit提交改动。
SVN安装:
1、安装服务器
######### 安装文件:SVN服务器###############
# http://wwwcollabnet/downloads/subversion #
CollabNetSubversion-server-169-1win32exe
点击安装CollabNetSubversion-serverexe,在第二个Next时选择Svnserve安装模式,去掉第二个勾即可。
往下可以选择自己的安装路径,点击Next后Finish即可。
程序被安装到:C:\Program Files\CollabNet\Subversion Server
2、安装客户端
######### 安装文件:SVN客户端###############
# http://tortoisesvnnet/downloads #
TortoiseSVN-16819260-win32-svn-1611msi
LanguagePack_16819260-win32-zh_CNmsi
点击安装软件,按提示安装即可。
3、配置服务器
在CollabNetSubversion的安装完成后,使用命令行工具创建版本库
a创建一个名为SVN(例如D:\SVN\)的空文件夹,作为你的所有版本库的根
b在D:\SVN\里创建另一个目录Project
c打开命令行窗口(或DOS窗口),进入D:\SVN,输入
svnadmin create --fs-type fsfs Project
这样,你就在D:\SVN\Project创建了一个新的版本库。
4、修改配置文件
对三个文件进行配置,在D:\SVN\Project\conf目录下,分别为svnserveconf,passwd,authz
<1> 文件svnserveconf中把下面前面的#号去掉,修改如下:
引用
Java代码
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
<2> 文件passwd增加用户,修改如下:
引用
Java代码
[users]
admin = 123456
<3> 文件authz修改如下:
引用
Java代码
[groups]
admin = admin
[/]
@admin = rw
= r
5、运行 svnserve
在终端输入:
Java代码
svnserveexe -d -r D:\SVN\Project
6、以服务形式运行 svnserve
使用普通用户直接运行 svnserve 通常不是最好的方法。它意味着你的服务器必须有一个用户登录,还要记着重新启动服务器后重新启动 svnserve。最好的方法是将 svnserve 作为 windows 服务运行。
创建服务:
Java代码
sc create SvnService binpath= "C:\Program Files\CollabNet Subversion Server\svnserveexe --service -r D:\SVN\Project" displayname= "Svn Service" depend= Tcpip start= auto
修改服务配置:
Java代码
sc config SvnService binpath= "C:\Program Files\CollabNet Subversion Server\svnserveexe --service -r D:\SVN\Project" displayname= "Svn Service" depend= Tcpip start= auto
删除这个服务:
Java代码
sc delete SvnService
把服务设置为自启动:
Java代码
sc config SvnService start= auto
启动这个服务:
Java代码
net start SvnService
问题及解决办法:
一 当配置库中要包含中文路径时
注意在保存authz文件时,保存为不包含BOM 的UTF-8格式。
这样SVN才能正常识别路径。
可以使用uedit这类编辑器进行修改保存。
二 Subversion中如何checkout出单个文件
1、使用TortiseSVN客户端(以153版为例)右键菜单中的“svn checkout”检出logojpg文件的上级目录images文件夹,本地命名为temp。
2、然后在temp文件夹上点右键,在弹出的TortiseSVN右键菜单中选择“检查更新”,在“检查更新”窗口中点击“检查版本库”,会列出该“images”目录下的所有文件。
3、在“检查更新”窗口中选中要检出的“logojpg”文件,点右键,在右键菜单中选择“更新”,即可将该文件单独检出。
注意:本文所做的操作需要150或以上的Subversion客户端,即文中的svn程序需要150版本或以上,但是服务器端版本没有要求,150以下的也可以。
SVN本身是开源免费的,但有些将SVN集成在其中的版本管理软件是收费的
常用的免费SVN服务器端:SVN官方服务器端安装包、Collabnet Subversion Edge版安装包
常用的免费SVN客户端:TortoiseSVN
使用 VisualSVN Server来实现主要的 SVN功能则要比使用原始的 SVN和Apache相配合来实现源代码的 SVN管理简单的多,下面是详细的说明。
VisualSVN Server的下载地址如下,是免费的,随意不必有顾虑
http://wwwvisualsvncom/server/download/
SVN 的下载地址如下
http://tortoisesvnnet/downloadshtml
1、使用SVN,首先要安装TortoiseSVN,就是上面的SVN下载地址。
2、 安装VIsualSVN。
=======================================
VisualSVN Server 的安装目前最新版本是400
一 、Visual SVN的安装非常的简单
1、几乎是下一步。
2、选择 visualVSN服务器和管理控制台 或只有管理控制权限
3、选择程序安装的路径、Subversion Repository(库)的路径和所使用的协议和端口。
可以选择HTTP和HTTPS两种协议,如需使用svn协议也非常的方便,在14版本后,Subversion加入了Service运行的功能。端口号可以任意定义。对于HTTPS的端口号默认可以选择443和8443,对于HTTP默认可以选择80、8080和81。
下面的用于验证的身份,一个是windows验证,一个是Subversion身份验证,这里默认是Subversion身份验证。
4、接着就是复制文件的过程。
5、安装完成后会询问是否需要运行VisualSVN Server Manager(一个非常有用的管理工具)
6、打开“ VisualSVN Server Manager ”,如下:
二 、下面是 VisualSVN Server的配置和使用方法服务器端
1、下面添加一个代码库Repository,如下图:
2、点击Repository右键
3、按上图所示,创建新的代码库,在下图所示的文本框中输入代码库名称:
注意:上图中的CheckBox如果选中,则在代码库StartKit下面会创建trunk、branches、tags三个子目录;不选中,则只创建空的代码库StartKit。
点击OK按钮,代码库就创建成功了。
创建完代码库后,没有任何内容在里面
4、下面,开始安全性设置,在左侧的Users上点击右键:
输入上面的信息,点击OK,就创建一个用户了。按照上面的过程,分别添加用户其他用户就可以了。
下面开始添加这些用户到刚才创建的项目里。
点击刚才创建的库,Lenovo,右击选择属性(Properties)
5、点击上图中的"Add"按钮,在下图中选择刚才添加的用户,
注意这里的权限设置,要选择好。
点击"确定"按钮,上面的用户就具有了访问StartKit代码库的不同权限。
=======================================
三、签入源代码到SVN服务器
1、假如使用Visual Studio在文件夹lenovo中创建了一个项目,要把这个项目的源代码签入到SVN Server上的代码库中里,首先右键点击lenovo文件夹,这时候的右键菜单如下图所示:选择copy URL toCLipboard,就是复制统一资源定位符(URL)到剪贴板中
2、然后再电脑的空白处单击右键,选择小海龟的图标/ 导出
3、之后弹出对话框,将刚出的地址粘贴到第一个地址栏中
提交后要更新,不然服务器是不显示文件,
更新是选择 SVN更新和提交类似这里就不在重复了。
至此 SVN服务器以搭建完毕。
0条评论