`
chilongxph
  • 浏览: 135768 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SVN服务器的安装与配置与使用

阅读更多
在windows下配置svn服务器
1.下载文件
下载最新版本subversion,到http://www.collab.net/products/(此处下载的软件含有所需的apach软件,可以避免再安装配置apach)
下载 "Subversion " 软件包 最好下载.exe文件,否则,你要手动配置系统变量
下载 TortoiseSVN 下载
2.安装Subversion 服务器
由于我下载的是setup.exe版本,安装程序安装后会自动设置系统变量。setup.exe版直接安装就可以了.安装过程中有一处出现了一个多选框ENable viewVC,注意不要选中,否则,装不上。
(1)。首先创建SVN储存库(repository)两种方式

1.svnadmin create SVN储存库路径目录(如:F:\SVN)

2.使用TortoiseSVN,在目的文件夹上右键->Create Repository

repository创建完毕后会在目录下生成若干个文件和文件夹,dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部数据;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号;

3.配置SVN服务器

打开svn目录中配置文件conf\svnserve.conf,修改配置参数。
例:d:\svnhome\conf\svnserve.conf去掉以下内容之前的注释符#
[general]
anon-access = none  
auth-access = write
password-db = passwd
realm = My First Repository

说明:
anon-access = none  
--不允许匿名访问!这个很重要,不然谁都能访问这个代码仓库了。
        auth-access = write 
-- 允许提交修改
        password-db = passwd
--密码文件名字

[sasl]
此处是用于设定cyrus SASL library 的,一般我们用不到。
注:SASL:一个互联网远程主机的授权方式

【注】如果需要控制访问的用户身份,则:
# [general]
# password-db = passwd

去之每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件
同样打开passwd文件,将

# [users]
# harry = harryssecret
# sally = sallyssecret

这几行的开头#字符去掉,这是设置用户,一行一个,存储格式为“用户名 = 密码”,如可插入一行:admin = admin888,即为系统添加一个用户名为admin,密码为admin888的用户


4.运行SVN服务器
运行SVN服务
在命令行执行

svnserve --daemon --root F:\lava\svn
服务启动,--daemon可简写为-d,--root可简写为-r,可以建立一个批处理文件并放在windows启动组中便于开机就运行SVN服务,或者在这个地址http://clanlib.org/~mbn/svnservice/下载那个svnservice.exe文件,拷贝到E:\svn\bin目录下,再从命令行下执行:

svnservice -install --daemon --root "E:\svn\Repository"
sc config svnservice start= auto
net start svnservice

5、添加为系统服务

方法1(推荐):
在Windows NT中本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。
1.安装为服务:
例:我的Subversion安装在"D:\program files\Subversion",版本库在"D:\svn_root",而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:
sc create svnservice
binpath= "D:\ Program Files\Subversion\bin\svnserve.exe --service -r D:\svn_root"
displayname= "SVNService"
depend= Tcpip
请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。
另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中如果svnserve.exe在“c:\ program files\subversion\”中,则命令应该写为“binpath= "\"c:\program files\subversion\bin\svnserve.exe\"”(“”中的内容),整个命令如下,sc create svnservice
binpath= "\"D:\ Program Files\Subversion\bin\svnserve.exe\" --service -r D:\svnroot"
displayname= "SVNService"
depend= Tcpip
其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。
2.启动服务
在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务。
3.停止服务
然后使用"net stop svnservice"停止服务。
4.删除服务
如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice","svnservice"就是我们创建服务时使用的名字。
5.配置服务是自动启动
默认情况下安装的服务不会随Windows的启动而启动,为了使svn服务能够随Windows启动而启动,需要修改一下"sc create"命令(首先要删除),增加"start= auto"选项:
sc create svnservice
binpath= "D:\ Program Files\Subversion\bin\svnserve.exe --service -r D:\svn_root"
displayname= "SVNService"
depend= Tcpip
start= auto
当然你也可以使用图形化的工具修改服务的属性,你可以在“开始->运行...”中执行"services.msc",然后在界面中修改。
方法2:
这个地址http://clanlib.org/~mbn/svnservice/下载那个svnservice.exe文件,拷贝到E:\svn\bin目录下,再从命令行下执行:
svnservice --install --daemon --root "E:\svn\Repository"
sc config svnservice start= auto
net start svnservice
此文件会将SVN变成windows系统的一个服务,并默认为自启动,注意:执行第三句时确保前面以命令行方式运行的SVN服务已经停止,如果没停止可在其窗口中按Ctrl+C中止运行。


6.用客户端访问
  格式:svn:\\服务器IP(svn://localhost/svn)
因为SVN有三种方式实现也就有三种不同的访问格式。

7.初始化导入
下面就是将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢失、改错数据时版本库也能帮我们找回数据。
比如,我在 d:\wwwroot 下有个 guestbook 文件夹,里面存放的是我编写的留言簿程序。在此文件夹上“右键 -> TortoiseSVN -> Import...” ,在弹出对话框的“URL of repository”输入“svn://localhost/repos1/guestbook”。在“Import message”输入“导入整个留言簿”作为注释。
点 OK 后要求输入帐号。我们在用户名和密码处都输入 test 。完成后 guestbook 中的内容全部导入到了 svn://localhost/svn/repo1/guestbook 。
我们看到在 e:\svn\repo1 没有任何变化,连个 guestbook 文件夹都没有建立,唯一的变化就是e:\svn\repo1容量变大了。实际上我们源guestbook中的内容已经导入 repo1 版本库了,源 guestbook 文件夹可以删除了。

需要注意的是,这一步操作可以完全在另一台安装了 TortoiseSVN 的客户机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22” 。
8.基本操作流程
1、取出(check out)
取出版本库到一个工作拷贝:
来到任意空目录下,比如在f分区建立一个空文件夹 f:\work 。“右键 -> SVN Checkout”。在“URL of repository”中输入“svn://localhost/svn/repo1/guestbook”,这样我们就得到了一份 guestbook 中内容的工作拷贝。

2、存入(check in)/提交(commit)
在工作拷贝中作出修改并提交:
在 guestbook 工作拷贝中随便打开一个文件,作出修改,然后“右键 -> SVN Commit... ”。这样我们就把修改提交到了版本库,版本库根据情况存储我们提交的数据。

在修改过的文件上“右键 -> TortoiseSVN -> Show Log” ,可以看到对这个文件所有的提交。在不同的 revision 条目上“右键 -> Compare with working copy”,我们可以比较工作拷贝的文件和所选 revision 版本的区别。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics