今天突发奇想,想在我自己的机器 上装个svn服务,把一些乱七八糟的文档、资料、代码什么的版本控制起来。
习惯了linux的包管理方式安装软件,回到windows下觉得干个什么都那么费劲。
网上到处收集好相关软件的windows版本,经过一番折腾终于安装成功。
网上到处收集好相关软件的windows版本,经过一番折腾终于安装成功。
为了以后再次安装时省点儿劲,把安装流程记录下来,同时也为了方便其他有这个需求的人。
本文针对的情况是:服务器和客户端都使用windows, 通讯使用svn协议。
一.软件获取
到 http://subversion.tigris.org/ 下载所需的软件,包括:
服务端:Subversion,svnservic
客户端:tortoiseSVN
其实客户端也可以使用Subversion本身,不过tortoiseSVN提供了图形界面以及和windows系统菜单的集成,很好用!
以下1~4在服务器上进行
二. 创建SVN仓库
使用以下命令:
svnadmin create <仓库路径>
例: svnadmin create d:svnhome //在d:svnhome上创建svn仓库。
三.修改svn配置文件
打开svn目录中配置文件confsvnserve.conf,修改配置参数。
例:d:svnhomeconfsvnserve.conf去掉以下内容之前的注释符#
[general]
anon-access = none
auth-access = write
password-db = passwd
realm = My First Repository
说明:
anon-access = none
--不允许匿名访问!这个很重要,不然谁都能访问这个代码仓库了。
auth-access = write
-- 允许提交修改
password-db = passwd
--密码文件名字
四.修改用户配置文件
用记事本打开d:svnhomeconfpasswd,使有效文本(指前面不加注释符的)为:
[users]
user=passwd
可以添加多个这样的用户名密码对。
五.运行SVN服务
在命令行执行
svnserve --daemon --root d:svnhome
服务启动,--daemon可简写为-d,--root可简写为-r.
六.添加为系统服务
方法1(推荐):
在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。
1.安装为服务:
例:我的Subversion安装在"D:program filesSubversion",版本库在"D:svn_root",而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:
(在CMD执行,注意,没有换行,这里只是为了醒目而换行)
(在CMD执行,注意,没有换行,这里只是为了醒目而换行)
sc create svnservice
binpath= "D: Program FilesSubversioninsvnserve.exe --service -r D:svn_root"
displayname= "SVNService"
depend= Tcpip
请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。
另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“”处理“"”号,例如上面的例子中如果svnserve.exe在“c: program filessubversion”中,则命令应该写为“binpath= ""c:program filessubversioninsvnserve.exe"”(“”中的内容),整个命令如下,红色部分是改变部分:
sc create svnservice
binpath= ""D:Program FilesSubversioninsvnserve.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 FilesSubversioninsvnserve.exe --service -r D:svn_root"
displayname= "SVNService"
depend= Tcpip
start= auto
当然你也可以使用图形化的工具修改服务的属性,你可以在“开始->运行...”中执行"services.msc",然后在界面中修改。
方法2:
建立一个批处理文件并放在windows启动组中便于开机就运行SVN服务。
方法3:
这个地址http://clanlib.org/~mbn/svnservice/下载那个svnservice.exe文件,拷贝到E:svnin目录下,再从命令行下执行:
svnservice --install --daemon --root "E:svnRepository"
sc config svnservice start= auto
net start svnservice
此文件会将SVN变成windows系统的一个服务,并默认为自启动,注意:执行第三句时确保前面以命令行方式运行的SVN服务已经停止,如果没停止可在其窗口中按Ctrl+C中止运行。
Websvn的安装
一.安装MSYS(版本:1.0.10)
说明;websvn做版本之间代码 比较时需要调用diff命令(linux下),但是windows下没有该命令,所以要依靠MSYS提供diff命令的运行环境。
官方网站:http://www.mingw.org/
二.安装websvn
官方网站:http://websvn.tigris.org/
版本:2.0
将include目录 下distconfig.php文件变更为config.php,之后将include/config.php中使用$config->parentPath或$config->addRepository设置仓库的路径
例:
$config->addRepository('php_version', 'file:///F:/www/htdoc/apache/svn/php_version');