SVN搭建与备份

 SVN 服务器和客户端安装

 

 安装服务器程序

运行服务端程序VisualSVN-Server-2.1.5.msi,根据提示安装即可,这样我们就有了一套在服务器端运行的环境。

  安装客户端程序

运行TortoiseSVN_1.6.2.16344.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。

安装客户端语言包
运行LanguagePack_1.6.2.16344-win32-zh_CN.msi

注意:上述服务端和客户端程序均为开源软件,在使用过程中注意两者版本的统一。

 

SVN 创建版本库

 多库管理模式

SVNROOT为版本库的根目录,文档为文档管理版本库、sourcecode为各系统代码管理版本库。

VisualSVN-Server提供了一个可视化的控制台,通过它我们可以方便的完成版本库的创建和权限的分配工作。

1. 启动VisualSVN Server Manager,在VisualSVN Servers上右键选择Properties

2. 在弹出的界面上设置版本库的根位置,设置完毕后会重新启动相关服务

3. VisualSVN Servers上右键选择Creat New repository ,创建新的版本库,并在文本框中输入库名称

上图中的CheckBox如果选中,则在库test下面会创建trunkbranchestags三个子目录;不选中,则只创建空的版本库test

(注:VisualSVN Server Manager不支持对目录下文件的创建和删除操作,这项工作需要借助Tortoise SVN来完成)

 

SVN 安全配置

 用户设置

1. 启动VisualSVN Server Manager,右键点击界面上的Users文件夹,选择create user

2. 在弹出的Users设置界面上添加新的用户和密码:

 用户组设置

1. VisualSVN Server Manager上右键点击界面上的Groups文件夹,选择create Group

2. 在弹出的Gruop设置界面上添加新的组和组成员

安全性设置

1. 在版本库中选择一个库,右键选择Properties

2. 点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,点击OK按钮

3. 按照下图所示,分别对用户或组进行授权

在线修改密码

1. 在安装目录(如C:\Program Files\VisualSVN Server\)的bin文件夹下增加alias.somod_cgi.so两个文件

2. 在安装目录中增加cgi-bin文件夹,其中包含svnpasssvnpass.ini两个文件,修改svnpass.inipwdFilePath地址的指向为版包库中密码存放的文件,例如:pwdFilePath=D:\Repositories\htpasswd

3. 修改安装目录中conf文件夹中的httpd-custom.conf,增加如下内容:

LoadModule alias_module bin/mod_alias.so

LoadModule cgi_module bin/mod_cgi.so

<IfModule alias_module>

ScriptAlias /cgi-bin/ "C:/Program Files/VisualSVN Server/cgi-bin/"

</IfModule>

4. 修改安装目录中htdocs文件夹的部分内容

注意:上述所需文件参见SVN中相关附件

5. 用户通过URL访问版本库,在验证通过后就能完成密码的在线修改

 

备份恢复机制

4.1.  备份策略

出于资源安全性考虑,为了防止由于配置管理服务器硬件或者软件故障,而导致配置库资源丢失且无法恢复的情况发生,需要对配置库资源进行定期的备份。这里采用的备份策略为定期大备份,时时小备份,即定期对配置库根目录下的所有配置库资源进行整体备份,而对各配置库而言,如果库内资源发生了有效修改(即对资源进行了修改并成功进行了提交操作),则仅对发生修改的信息内容进行备份。下面分别对定期大备份时时小备份的实现进行描述。

定期大备份的实现步骤

最常见和简单的备份就是直接使用拷贝命令,将版本库目录拷贝到备份目录上就可以了.但是这样不是很安全的方式,因为如果在拷贝时版本库发生变化,将会造成备份的结果不够准确,失去备份的作用,为此使用提供的svnadmin hotcopy的命令,可以防止这种问题。

例如:有如下的SVN版本库

D:\ Repositories

├─SMS

│     ├─conf

│     ├─dav

│     ├─db

│     │     ├─revprops

│     │     ├─revs

│     │     └─transactions

│     ├─hooks

│     └─locks

└─SSOcrbt

        ├─conf

        ├─dav

        ├─db

        │     ├─revprops

        │     ├─revs

        │     └─transactions

        ├─hooks

└─locks

现在将SMS 备份到E:\Repositories_back目录下,只需要运行:

svnadmin hotcopy D:\Repositories\SMS E:\ Repositories_back\SMS

实现脚本

1. 编写Backup.bat批处理文件

echo off

#rem Subversion的安装目录

set SVN_HOME="C:\Program Files\VisualSVN Server"=右边为VisualSVN Server的安装路径,请根据实际情况修改请根据实际情况修改

#rem 所有版本库的父目录

set SVN_ROOT=D:\Repositories\=右边为配置库根目录所在路径,请根据实际情况进行修改)

#rem 备份的目录

set BACKUP_SVN_ROOT=E:\Repositories_back (=右边为备份文件存储路径,要根据实际情况,先建立好存储文件夹)

set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10%

if exist %BACKUP_DIRECTORY% goto checkBack

:startBack

echo 建立备份目录%BACKUP_DIRECTORY%>>% BACKUP_SVN_ROOT %/backup.log

mkdir %BACKUP_DIRECTORY%

#rem 验证目录是否为版本库,如果是则取出名称备份

for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" %SVN_ROOT%\Simplebackup.bat "%%~fI" %%~nI

goto end

:checkBack

rd /s /q %BACKUP_DIRECTORY%

goto startBack

:end

2. 编写Simplebackup.bat批处理文件

@echo 正在备份版本库%1......

@%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2

@echo 版本库%1成功备份到了%2

goto clean

:clean

del /Q %BACKUP_SVN_ROOT%\ModifiedBackup\*.dump

goto end

:end

3. 将编写好的Backup.batSimplebackup.bat批处理文件放到配置库根目录下(这里是D:\Repositories),测试程序能否成功执行,进入配置库根目录后双击文件Backup.bat,然后进入备份目录D:\SvnBackup查看配置库根目录下的所有配置库是否都得到了备份,备份日志是否输出正确,如果这两点都通过,则说明程序没有问题了,如图:

4. 将文件Backup.bat的执行放到系统任务计划中,使得备份能够定期自动的进行。点击开始”->“控制面板”->“任务计划”->“添加计划任务打开任务计划向导窗口,如图:

5.点击下一步按钮,进入下一窗口,点击浏览按钮,在弹出的选择程序以进行计划窗口选择配置库根目录下的Backup.bat文件进行添加,如图:

6.进入下一窗口后可以设置添加的该任务名称和任务执行的间隔时间类型,如果任务名称和程序名相同,设置每周执行一次备份的话,如图


7.点击下一步按钮,进入下一窗口设置任务执行的起始时间和起始日期,间隔时间类型选择不同的话,该窗口显示的内容也不同。这里设置每周五的1300执行任务,如图:

8.点击下一步按钮,设置任务执行时需要的用户名和密码,用户名采用默认即可(默认为本机Administrator用户),密码输入本机Administrartor用户的登陆密码,如图

9.点击下一步按钮,再在下一窗口中点击完成按钮,就完成了此项计划任务的添加。这样系统就可以根据设置的计划任务信息,自动地进行配置库的备份操作了,因为定期大备份是对所有配置库最新版本的整体备份,所以每次进行时,会自动删除上次大备份之后的所有时时小备份

“时时小备份”的实现步骤

1. 编写post-commit.bat批处理文件

echo off

set SVN_HOME=C:\Program Files\VisualSVN Server=右边为VisualSVN Server的安装路径,请根据实际情况修改请根据实际情况修改)

set SVN_ROOT=D:\Repositories=右边为配置库根目录所在路径,请根据实际情况进行修改)

set SVN_MODIFIED_BACKUP_ROOT=E:\Repositories_back\ModifiedBackup(=右边为备份文件存储路径,要根据实际情况,先建立好存储文件夹)

set LOG_FILE=%SVN_MODIFIED_BACKUP_ROOT%\ModifiedBuckup.log

echo 增量备份配置库版本 %2 所作的修改 >> %LOG_FILE%

cd C:\Program Files\VisualSVN Server\bin

svnadmin dump D:\Repositories\SMS=右边为时时备份的配置库) --incremental --revision %2 >> E:\Repositories_back\ModifiedBackup\Dev.dump

goto end

:end

2. 将编写好的post-commit.bat批处理文件放到对应配置库的hooks目录下(这里是D:\Repositories\test\hooks

3. 测试时时小备份是否实现,在SVN的本地工作空间中,对实现了时时小备份的配置库的内容进行修改并提交,然后进入对应的备份目录中(此处为E:\Repositories_back\ModifiedBackup)检查是否输出了备份文件(此处为Dev.dump)和备份日志(此处为ModifiedBuckup.log)。如果这两者都存在,说明备份成功了。

4. 对于配置库根目录下的每个配置库都应该进行上述操作,以使每个配置库都能实现时时小备份的功能。

配置库备份的还原

由于配置库的备份有定期大备份时时小备份两种方式,所以备份数据的还原策略也有如下两种:

1. 如果进行了定期大备份后,配置库根目录下的所有配置库内容均未发生过有效修改,(也就是时时小备份的备份目录下么有备份的数据文件),此时还原备份时间最近的大备份的备份数据文件即可,方法如下:点击开始”->“所有程序”->“VisualSVN Server”启动VisualSVN Server 可视化控制面板,选中配置库根目录节点“Repositories”,点击鼠标右键选择所有任务”->“Import Existing Repository…”,打开“Import Existing Repository”窗口,在该窗口的“Existing Repository Location”输入框输入要导入的配置库备份文件路径(或者点击“Browse”按钮进行浏览选择),然后在“New Repository Name”输入框输入新的配置库名称,操作后结果如下图

点击“ok”按钮,完成备份数据库的还原。(每个配置库备份都要进行如上操作)2. 如果在进行定期大备份之前,配置库根目录下的某些配置库内容发生了有效修改,则先要将发生了内容修改的配置库的修改备份(小备份.dump)合并到最近的整体备份(大备份)中,合并方法是执行批处理文件Merger.bat,文件内容如下:

cd C:\Program Files\VisualSVN Server\bin svnadmin load E:\Repositories_back\2010-06-01\SMS < E:\Repositories_back \ModifiedBuckup\Dev.dump

(注意:E:\Repositories_back \ModifiedBuckup\Dev.dump为配置库SMS“时时小备份的累积备份Dev.dump所在路径,E:\Repositories_back\2010-06-01\SMS为配置库SMS最近一次定期大备份的备份库SMS所在路径)

然后再按照还原策略1中的方法将备份库test进行还原。没有发生内容被有效修改的配置库,可直接按照还原策略1中的方法进行还原即可。

使用Web 浏览器访问

打开浏览器,在浏览器地址栏输入要访问配置库对象的“https:\\.........”网络路径进行连接,然后在弹出的验证登陆框中输入配置库管理员所给的正确用户名和密码,如图


登陆成功后即可对拥有权限的配置库对象进行浏览和下载了。

TortoiseSVN的基本使用方法

签入资源到SVN服务器

假如有一个共享文档的文件夹,把这个文件夹中的资源签入到SVN Server上的test库中,首先右键点击共享文档文件夹,这时候的右键菜单如下图所示:

svn是版本库的根目录,test是为测试组建立的版本库:点击导入,弹出下面的窗体,其中https://neng:8443/是服务器名和端口号,

点击OK按钮,会弹出下面的窗体,要求输入凭据:

在上面的窗体中输入用户名和密码,点击OK按钮:


如上图所示,好了,共享文档中的资料已经成功签入SVN服务器了。这时候团队成员就可以迁出SVN服务器上的共享文档到自己的机器了。

签出资源到本机

在本机创建文件夹test,右键点击检出,弹出如下图的窗体:

在上图中版本库URL:下的文本框中输入svn server中版本库的地址,其他默认,点击OK按钮,就开始签出test库中的资料。

注意:上图中检出深度,有4个选项,分别是迁出全部、只签出下一级子目录和文件、只签出文件、只签出空项目,默认的是第一项。这时候也会弹出对话框,要求输入用户名和密码,通过验证后即可浏览代码库中的内容。

一旦你对文件或文件夹做了任何修改,那么文件或文件夹的显示图片机会发生变化。下图中修改了其中的一个文件:

大家看一下不同状态所对应的图片:

  提交修改过的文件到SVN服务器

上图中,修改了09-软卡CAS文件夹下QC用例编写规范这个文档,下面演示如何提交到SVN服务器。

注意:提交资源到服务器时,一定确保本机的资源是最新版本,否则可能提交失败,或者造成版本冲突。

09-软卡CAS文件夹上点击右键或在09-软卡CAS文件下的空白处点击右键,点击SVN 提交,弹出下面的窗体:

点击OK按钮后,弹出如下图的窗体:

  添加新文件到SVN服务器

我们在[09-软卡CAS]文件下添加一个新的文件UserInfo.cs,在[09-软卡CAS]文件下的空白处点击右键,点击SVN 提交,和上面讲的提交修改过的文件到SVN服务器一样,就可以了。

另外也可以在文件UserInfo.cs上点击右键,点击TortoiseSVN=>>增加,这样没有将这个文件提交到SVN服务器,只是将这个文件标记为库中的文件,并将其状态置为修改状态。之后,我们要再SVN C提交这个文件一次,才可以将其真正提交到SVN服务器上的test库中。

上面讲是添加文件,实际上,添加文件夹的步骤也是一样的,这里就不说了。

  更新本机代码与SVN服务器上最新的版本一致

这个也很简单,只要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVN 更新,就可以了。

注意:更新操作可能会因为版本冲突而失败,这是可以使用合并或其他方法解决;也可能因为锁定而失败,这是需要先解锁。

  重命名文件或文件夹,并将修改提交到SVN服务器

只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>改名,在弹出的窗体中输入新名称,点击OK按钮,就可以了。此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后名称,也需要我们使用SVN 提交到SVN服务器后才真正重命名。

  删除文件或文件夹,并将修改提交到SVN服务器

最简单就是,你直接删除文件或文件夹,然后使用SVN 提交更新到SVN服务器。另外一种方法是在你要删除的文件或文件夹上点击右键=>>TortoiseSVN=>>删除,此方法也不是直接删除,而是将该文件或文件夹的状态置为删除,也需要我们使用SVN提交到SVN服务器后才真正删除。

注意:实际上,从你把源代码迁签入SVN服务器开始,每一个版本的数据和文件,就算是你已经删除了的,也都可以随时迁出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
森林防火应急联动指挥系统是一个集成了北斗定位/GPS、GIS、RS遥感、无线网络通讯、4G网络等技术的现代化智能系统,旨在提高森林火灾的预防和扑救效率。该系统通过实时监控、地图服务、历史数据管理、调度语音等功能,实现了现场指挥调度、语音呼叫通讯、远程监控、现场直播、救火人员生命检测等工作的网络化、智能化、可视化。它能够在火灾发生后迅速组网,确保现场与指挥中心的通信畅通,同时,系统支持快速部署,适应各种极端环境,保障信息的实时传输和历史数据的安全存储。 系统的设计遵循先进性、实用性、标准性、开放性、安全性、可靠性和扩展性原则,确保了技术的领先地位和未来的发展空间。系统架构包括应急终端、无线专网、应用联动应用和服务组件,以及安全审计模块,以确保用户合法性和数据安全性。部署方案灵活,能够根据现场需求快速搭建应急指挥平台,支持高并发视频直播和大容量数据存储。 智能终端设备具备三防等级,能够在恶劣环境下稳定工作,支持北斗+GPS双模定位,提供精确的位置信息。设备搭载的操作系统和处理器能够处理复杂的任务,如高清视频拍摄和数据传输。此外,设备还配备了多种传感器和接口,以适应不同的使用场景。 自适应无线网络是系统的关键组成部分,它基于认知无线电技术,能够根据环境变化动态调整通讯参数,优化通讯效果。网络支持点对点和点对多点的组网模式,具有低功耗、长距离覆盖、强抗干扰能力等特点,易于部署和维护。 系统的售后服务保障包括安装实施服务、系统维护服务、系统完善服务、培训服务等,确保用户能够高效使用系统。提供7*24小时的实时故障响应,以及定期的系统优化和维护,确保系统的稳定运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值