SVN远程备份简单操作手册Word文档格式.docx

上传人:b****4 文档编号:6644808 上传时间:2023-05-07 格式:DOCX 页数:17 大小:317.78KB
下载 相关 举报
SVN远程备份简单操作手册Word文档格式.docx_第1页
第1页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第2页
第2页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第3页
第3页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第4页
第4页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第5页
第5页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第6页
第6页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第7页
第7页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第8页
第8页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第9页
第9页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第10页
第10页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第11页
第11页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第12页
第12页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第13页
第13页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第14页
第14页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第15页
第15页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第16页
第16页 / 共17页
SVN远程备份简单操作手册Word文档格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

SVN远程备份简单操作手册Word文档格式.docx

《SVN远程备份简单操作手册Word文档格式.docx》由会员分享,可在线阅读,更多相关《SVN远程备份简单操作手册Word文档格式.docx(17页珍藏版)》请在冰点文库上搜索。

SVN远程备份简单操作手册Word文档格式.docx

7Subversion同步工具svnsync出错:

Failedtogetlockondestinationrepos14

8使用svnsync备份很简单,步骤如下:

15

9注意事项:

18

1建立版本库

1、在Dos命令行方式下,进入svn安装目录下的bin目录(如C:

\ProgramFiles\Subversion\bin)下,输入命令svnadmincreate路径+版本库名,即:

SvnadmincreateF:

/svn

Enter键后会自动创建svn文件夹,如下图所示:

2、进入C:

\ProgramFiles\ApacheGroup\Apache2\bin目录下(仍然在Dos命令行方式下),输入svnadmincreateF:

/svn/svnproject

3、在Apache安装目录下的conf目录下,用文本编辑器打开httpd.conf,在httpd.conf文件的最后语句中加入:

<

Location/svn>

davsvn

svnparentpathF:

\svn

<

/Location>

如下截图所示:

httpd.conf有黑色的雪花(*)表示此文件正在被修改,提醒每次修改后要记得保存,

这样,凡是在F盘下F:

\svn目录下的子目录,Apache都交给Subversion

4)将httpd.conf中的Listen80修改为Listen8081(须在规定的范围内可以任意改变端口号)。

改为:

版本库建好就要与Apache发生联系了。

2Apache方式下添加用户

1、首先,我们来为SVN配置库创建第一个用户zfq,在命令行窗口中转到Apachehtpasswd工具所在的目录(如:

C:

\ProgramFiles\ApacheGroup\Apache2\bin)下输入如下命令:

Htpasswd-cF:

\svn\svnproject\conf\userzfq

这时,会提示输入用户密码以及确认用户密码。

注意这里是创建第一个用户,所以需要有-c开关。

一定要注意:

创建第二个用户时,我们就不必输入-c开关了。

如果想要删除某个用户,我们可以使用下列指令:

Htpasswd–dF:

\svn\svnproject\conf\userharry

2、再在配置文件httpd.conf的最后加入下面的指令以增加权限:

#howtoauthenticateauser

authtypebasic

authname"

Resources"

authuserfileF:

\svn\svnproject\conf\user

#onlyauthenticatedusersmayaccesstherepository

Requirevalid-user

如截图所示:

3Apache方式下分组权限管理

1、有时,我们希望能够将多个开发人员编为一组,使用组的方式来为

项目设定权限。

比如projectA项目只有属于groupA的成员才可以存取

2、我们对httpd.conf中的目录配置再做一次修改:

authzsvnaccessfileF:

\svn\svnproject\conf\authz

Requirevalid-user

注意:

每次修改httpd.conf文件之后,记得保存,并且必须重新启动Apache服务器之后才能生效。

3、可以注意到,这里在F:

\svn\svnproject\conf目录下使用了另一个配置文件authz.conf

具体操作步骤如下:

1)初始时,先分配一个管理员,其对整个配置库具有读写权限,如:

[groups]

admin=sunfurong,zfq

[svnproject:

/]

@admin=rw

*=r

2)如下操作:

3)单击【确定】后,如下图所示:

4)输入相应的用户名和密码后,单击【确定】后,会出现一个空的配置库(这个很重要,必须是空的配置库才能保证以下操作的顺利进行。

4同步备所需要的命令

1、下面介绍利用svnsync来同步版本库,达到备份版本库的目的

要用到两个命令

1)svnsyncinit

初始化,建立目标库和源库之间的同步关系

命令格式:

svnsyncinit目标库URL源库URL

2)svnsyncsync

真正的同步

命令格式svnsyncsync目标库URL

2、目标:

本次实现的是版本库的远程自动备份,将版本库备份到另一台机器上

假设我们要同步的源版本库为http:

//192.168.2.235/svn/svnprojec位于机器A,具体路径我们不必理会,因为我们使用http协议

目标库在机器B,file:

///svn/svnproject,这个为了简单和安全,我们使用file:

//协议

3、过程:

1)创建pre-revprop-change.bat文件:

即复制pre-revprop-change.tmpl,将其扩展名改为pre-revprop-change.bat,并且清空原有的所有内容、保存。

如下图所示:

2)修改目标库的脚本pre-revprop-change

进入F:

/svn/svnproject/hooks/

cd/svn/svnproject/hooks/

打开后末尾字段如下:

REPOS="

$1"

REV="

$2"

USER="

$3"

PROPNAME="

$4"

ACTION="

$5"

if["

$ACTION"

="

M"

-a"

$PROPNAME"

svn:

log"

];

thenexit0;

fiecho"

Changingrevisionpropertiesotherthansvn:

logisprohibited"

>

&

2exit1,原脚本的意思是如果修改的是svn:

log属性,将允许修改,返回0;

否则,不允许,返回1,我们要将它改为允许修改所有的属性,在脚本中直接返回0,新的脚本如下:

exit1exit0即可。

4、初始化

在机器B上输入命令:

svnsyncinitfile:

///F:

/svn/svnproject(有空格)http:

//192.168.2.235:

8081/svn/svnproject会提示输入用户名和密码,这里提供的用户名和密码是可以完全读取于

http:

8081/svn/svnproject的计算机密码,用户名和密码,,即如下图:

5、同步

1)svnsyncsyncfile:

/svn/svnproject

依然会提示输入用户名和密码,不过,你可以在这个命令之后加上username、password参数,在目录:

\ProgramFiles\Subversion\bin下

输入:

svnsyncsyncfile:

/svn/svnproject--usernameusername--passwordpassword

如上截图所示,会一直走下去直至目标库与源库的版本号完全一致为止。

2)同步结束后,如下图所示:

到这一步时,SVN远程备份就已经完成了,如果版本库较大时,备份的时间可能会有点慢,要有耐心,用一天也是有可能的,你可以打开目标库看看,和源库是一样的。

应该定期的一周或者两周打开命令窗口输入:

已达到定期同步的目的。

∙1、在要备份的机器上建立版本库:

svnadmincreatesvn

∙2、进入hooks目录:

cdsvn/svnproject/hooks/

∙3、创建pre-revprop-change.bat文件:

复制pre-revprop-change.tmpl,将扩展名改为pre-revprop-change.bat,并且清空原有的所有内容,保存。

∙4、修改文件:

pre-revprop-change文件,

为echo“Changingrevisionpropertiesotherthansvn:

logisprohibited”>

2

exit0(1修改为0即可)

∙6、同步初步:

/svn/svnprojecthttp:

8081/svn/svnproject

svnsync:

Destinationrepositoryisalreadysynchronizingfrom’svn:

//10.10.10.1′

∙7、实现同步:

/svn/svnproject–usernameusername–passwordpassword1

Svnsync:

Cannotinitialize(初始化)arepositorywithcontentinit

当版本库有内容时不能初始化

如果反复操作都是同样错误的话,很可能是你版本库有内容,需要你版本库svn,重新按照svn服务器的安装手册里SVN与apache的集成来重新新建版本库。

7同步工具svnsync出错

常见问题一:

在使用svnsync同步两个版本库时经常出现如下的错误,并自动中断了同步操作:

Copiedpropertiesforrevision461.

Serversentunexpectedreturnvalue(502BadGateway)inresponsetoPR

OPFINDrequestfor‘/svn/!

svn/vcc/default’

当再次运行svnsyncsyncfile:

/svn/svnproject时,有可能出现“Failedtogetlockondestinationrepos”的错误信息,使同步操作无法继续进行:

F:

\Subversion>

svnsyncsyncfile:

Failedtogetlockondestinationrepos,currentlyheldby‘firehack:

963c0909-45ad-644f-b383-7e35d445028f’

Failedtogetlockondestinationrepos,currentlyheldby

‘firehack:

Couldn’tgetlockondestinationreposafter10attempts

解决办法:

删除SVN仓库修订号0 

svn:

sync-lock的保护.

svnpropdelsvn:

sync-lock--revprop-r0file:

常见问题二:

一个意外情况:

我在测试中,发现如下错误

Copiedpropertiesforrevision738.

Committedrevision739.

Copiedpropertiesforrevision739.

Committedrevision740.

Copiedpropertiesforrevision740.

Committedrevision741.

Copiedpropertiesforrevision741.

REPORT请求“http:

//192.168.1.210:

8081/svn/svnproject”失败

REPORT的结果”http:

8081/svn/svnproject”:

200OK(http:

8081/svn/svnproject)

打开备份的配置库,将其中空的文件夹进行删除或是新建,对最后的版本进行覆盖即可。

产生原因:

是对某个操作的无法识别导致,需要知道的是与Apache集成的配置库是不支持中文格式,包括空白字符、空格,所以配置库极为脆弱,需要好好维护,到后面SVN虽然有升级,但是这个Bug仍然存在,也许到后面的学习中,我会有办法彻底解决。

8使用svnsync备份步骤如下:

一、在备份机上创建一个空库:

svnadmin 

create 

svn

二、更改该库的钩子脚本pre-revprop-change(因为svnsync要改这个库的属性,也就是要将源库的属性备份到这个库,所以要启用这个脚本):

cd 

/svn/svnproject/hooks;

cp 

pre-revprop-change.tmpl 

pre-revprop-change;

chmod 

755 

vi 

将该脚本后面的三句注释掉,或者干脆将它弄成一个空文件。

三、初始化,此时还没有备份任何数据:

svnsync 

init 

file:

/svn/svnproject 

8081/svn/svnproject

语法是:

{你刚创建的库url} 

{源库url}

注意本地url是三个斜杠的:

///

四、开始备份:

sync 

这时就一个个版本进行备份了。

附录:

可能的报错一:

Failed 

to 

get 

lock 

on 

destination 

repos, 

currently 

held 

by 

'

:

0c424c20-2e3b-0410-bd34-7fdd53c25d02'

Failed 

Couldn'

repos 

after 

10 

attempts

这个时候可能属性被锁了,删掉属性:

svn 

propdel 

sync-lock 

--revprop 

-r0 

删除成功后,再试一遍基本就可以了。

如果反复操作都是同样错误的话,有可能是你的svn安装有问题,重新安装一遍就好了,我试过的。

可能报错二、svnsync:

REPORT 

request 

failed 

8081/svn/svnproject'

The 

requested 

report 

is 

unknown.

这是因为svn源库的版本太低了,svnsync所需要的函数Report是svn1.4后加入的,只能对你的库进行升级后才能备份。

svnproplist-v--revprop-r0

svnproplist-v--revprop-r0svnsyncsyncfile:

1.据本人总结,上述方式的备份,需要注意的是:

1)在备份服务器上不能进行任意操作,只能打开,不能增删改动!

2)要定期备份;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2