SVN管家SVN备份恢复同步存储等日常管理svn存储结构.docx

上传人:b****8 文档编号:10666384 上传时间:2023-02-22 格式:DOCX 页数:13 大小:202.76KB
下载 相关 举报
SVN管家SVN备份恢复同步存储等日常管理svn存储结构.docx_第1页
第1页 / 共13页
SVN管家SVN备份恢复同步存储等日常管理svn存储结构.docx_第2页
第2页 / 共13页
SVN管家SVN备份恢复同步存储等日常管理svn存储结构.docx_第3页
第3页 / 共13页
SVN管家SVN备份恢复同步存储等日常管理svn存储结构.docx_第4页
第4页 / 共13页
SVN管家SVN备份恢复同步存储等日常管理svn存储结构.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

SVN管家SVN备份恢复同步存储等日常管理svn存储结构.docx

《SVN管家SVN备份恢复同步存储等日常管理svn存储结构.docx》由会员分享,可在线阅读,更多相关《SVN管家SVN备份恢复同步存储等日常管理svn存储结构.docx(13页珍藏版)》请在冰豆网上搜索。

SVN管家SVN备份恢复同步存储等日常管理svn存储结构.docx

SVN管家SVN备份恢复同步存储等日常管理svn存储结构

SVN管家、SVN备份恢复&同步存储等日常管理、svn存储结构

SVN管家(linux版本)项目

由admin于星期二,02/14/2012-17:

36发表

项目讨论区

SVN管家是SVN俱乐部的基于apache+svn研发的产品,该产品只要安装apache就可运行。

SVN管家有用户注册,用户中心(包含用户修改密码,用户查看自己权限等),管理中心(创建、删除版本库,创建用户、修改用户密码,设置用户权限,基于版本库级和基于目录级的权限设置,版本库备份与恢复,计划备份等等功能)。

程序下载:

svn管家(linux版本)2.1

安装方法:

1.首先你得在你的机器上配置好apache和svn,注意要配置成多库的方式, 建议使用YUM安装, 你的linux要支持中文. 可以参考文档进行配置:

svn_apache_yum_安装配置;

2.解压安装包:

svngj2.x.tar.gz;

tarxzvfsvngj2.x.tar.gz

chown-Rapache:

apachesvngj2.1

3.把目录svngj_cgi拷贝到apache的cgi-bin目录里,并把目录svngj_cgi重命名为svngj;

cp-prsvngj_cgi/var/www/cgi-bin/

mv/var/www/cgi-bin/svngj_cgi/var/www/cgi-bin/svngj

4.把目录svngj_html拷贝到apache的html(htdocs)目录,并把目录svngj_html重命名为svngj;

cp-prsvngj_html/var/www/html

mv/var/www/html/svngj_html/var/www/html/svngj

5.配置svn管家的配置文件/var/www/cgi-bin/svngj/svngj.conf里的httpdconf(apache的配置文件),svnadmin(svn的管理命令);

httpdconf=/etc/httpd/conf/httpd.conf

svnadmin=/usr/bin/svnadmin

6.把svn管家的文件的所属用户改成apache运行的用户,让apache用户可读写该目录;

chown-Rapache.apache/var/www/cgi-bin/svngj

chown-Rapache.apache/var/www/html/svngj

7.把svn的用户文件和权限文件的所属用户改成apache运行的用户;

chownapache.apache /svn/userfile

chownapache.apache /svn/accessfile

8.配置完毕,现在您可以通过http:

//ip/svngj来访问svn管家了. 另外,文件/var/www/html/svngj/index.html件只是起引导作用,否则,比如你访问注册页面时,需输入:

http:

//ip/cgi-bin/svngj/register.html.

附:

所用到的apache配置文件里(比如:

/etc/httpd/conf/httpd.conf)的对应项解读:

1) apache的cgi-bin目录

ScriptAlias/cgi-bin/"/var/www/cgi-bin/"

2) apache的html目录

DocumentRoot"/var/www/html"

3) apache运行的用户和用户组

Userapache

Groupapache

4) svn的管理命令svnadmin

如果是yum安装的话,通常是:

/usr/bin/svnadmin, 源码安装的在svn安装目录的bin目录下面.

系统支持:

Apache2.2+,Subversion1.6+,centos5.x,otherlinux。

初始管理员帐号:

admin/admin

测试入口:

SVN管家(Windows版本)项目

由admin于星期五,06/03/2011-13:

42发表

项目讨论区

SVN管家是SVN俱乐部的基于apache+svn研发的产品,该产品只要安装apache就可运行。

SVN管家有用户注册,用户中心(包含用户修改密码,用户查看自己权限等),管理中心(创建、删除版本库,创建用户、修改用户密码,设置用户权限,基于版本库级和基于目录级的权限设置,版本库备份与恢复,计划备份等等功能),还可以自动在线升级。

安装方法(安装过程中遇到任何问题请联系:

QQ:

1474770592;email:

svnclub@):

注意:

如果您是安装VisualSVNServer的(svn管家需V2.3以上版本),请先参考文档“SVN管家与VisualSVNServer完美结合”。

1.首先你得在你的机器上配置好apache和svn,注意要配置成多库的方式。

可以参考安装包里的文档进行配置:

svn和apache的安装与配置.txt;

2.将当前目录下的压缩包:

svn管家_Win_V1.0.rar解压到apache2.2的安装目录,我这里apache的安装路径是:

C:

\ProgramFiles\ApacheSoftwareFoundation\Apache2.2;

3.解压缩时会提示是否覆盖已存在的index.html,选择“是”。

这个主要是为了方便访问(URL不用输很长),没有其它作用;

4.确保SVN的安装路径的bin路径在环境变量里头,否则SVN管家的一些功能会不起作用。

我这里SVN的bin路径是:

C:

\ProgramFiles\Subversion\bin;

环境变量查看(设置):

右键“我的电脑”-属性-高级-环境变量-系统变量-Path

5.在浏览器里输入:

http:

//ip就进入到svn管家了,现在就可以正式用了!

程序下载:

svn管家版本下载地址升级内容

2.3下载

1、与VisualSVNServer完美结合;

2、修改若干读取权限文件的BUG。

2.2下载

1、完全支持中文目录权限设置。

在管理后台点击“权限管理”系统会自动将权限控制文件转为UTF-8无bom格式,不再需要借助EditPlus、UltraEdit等编辑器转换。

2.1下载

1、增加用户备注功能,提高帐号的辨识度,利于管理员进行管理;

2、增加注册用户自定制设置;

3.支持中文目录权限设置;

4.修改登陆首页,增加网页直接登陆svn服务器功能。

2.0下载

1、增加注册用户功能;

2、支持Windows7系统;

3、修复若干BUG。

系统支持:

Apache2.2+,Subversion1.6+,Windows2000/2003/XP。

初始管理员帐号:

admin/admin

页面浏览:

svn管家首页:

用户注册页面:

用户登陆页面:

用户中心:

管理员登陆页面:

管理中心:

SVN备份恢复同步存储等日常管理

svn存储结构

#ls/svn/Repository/

confdavdbformathookslocks

注解:

conf包含库配置文件的目录;

dav提供给Apache和mod_dav_svn使用

db版本数据存储目录

format存储一个整数的文件,此整数代表库层次结构版本

hooks版本库勾子版本

locks存储库锁目录,用来跟踪库的访问者

db目录下fs-type目录不能删除,记录库的存储系统;而revprops目录记录版本属性;revs才是版本存储的实际目录;uuid为库的唯一标识号;txn-current记录当前事务;

所有这些目录中,db、format、locks、fs-type、revs、uuid、revprops目录及文件必须完整才能正常显示版本,如果revs中的版本意外删除,可以从hot-copy备份库中直接拷贝过来而不会损坏数据;也可以从镜像库拷贝恢复(实际操作中还是有数据损坏,镜像库和源库中还是有些许差异);

其中revs下面是以目录组织的版本结构,如../0,../0/1../0/2../0/3,每1000个版本组成一个目录,每个版本自成一个文件,文件名即为commit后生成的版本号;即使删除掉部分版本也不会影响版本库的读取和显示;但是基础版本丢失会使版本库无法访问;

备份svn存储库

#压缩备份

svnadmindump/home/workhome/svn/repository|gzip>~/repository-backup.gz

#不压缩备份

svnadmindump/home/workhome/svn/repository>~/repository-backup.svn

恢复svn存储库

#建立新的svn存储库

svnadmincreate/home/workhome/svn/newrepository

#确认成功与否

ls-l/home/workhome/svn/newrepository

#导入存储库数据

svnadminload/home/workhome/svn/newrepository<~/repository-backup.svn

其他

svnadminrecover—将版本库数据库恢复到稳定状态

svnadminrecover/home/workhome/svn/newrepository

删除存储库中无用的日志文件

svnadminlist-unused-dblogs/home/workhome/svn/newrepository/|xargsrm-vf

删除存储库中所有剩余的共享内存文件

rm-f/home/workhome/svn/newrepository/db/_db.0*

实现svnsync

实现svnsync的唯一的前提条件是创建一个希望镜像的版本库,一旦创建,你就可以按照下面步骤继续。

Step1:

创建镜像Repository(要与主Repository名字相同)

svnadmincreateMIRROR_REPO_PATH

Step2:

设置镜像版本库只对同步用户可写

svnsyncsynchronize-h

synchronize(sync):

usage:

svnsyncsynchronizeDEST_URL

Transferallpendingrevisionstothedestinationfromthesourcewithwhichitwasinitialized.

Validoptions:

--non-interactive:

donointeractiveprompting

--no-auth-cache:

donotcacheauthenticationtokens

--usernameARG:

specifyausernameARG(deprecated;see--source-usernameand--sync-username)

--passwordARG:

specifyapasswordARG(deprecated;see--source-passwordand--sync-password)

--source-usernameARG:

connecttosourcerepositorywithusernameARG

--source-passwordARG:

connecttosourcerepositorywithpasswordARG

--sync-usernameARG:

connecttosyncrepositorywithusernameARG

--sync-passwordARG:

connecttosyncrepositorywithpasswordARG

--config-dirARG:

readuserconfigurationfilesfromdirectoryARG

-q[--quiet]:

printaslittleaspossible

这句意思是不是同步用户可以主Repository和镜像Repository都设成一样。

待实践

为了让镜像版本库只被同步用户写,我们的例子里用户名是”svnsync”,我们有一些选项,一个就是使用Subversion的授权功能设置缺省的访问规则:

[/]

*=r

svnsync=rw

另一个选项就是使用start-commit(MIRROR_REPO_PATH/hooks下)检查svnsync用户,下面是一个例子,是shell脚本:

#!

/bin/sh

USER=”$2″

if[“$USER”=“svnsync”];

thenexit0

fi

echo“Onlythesyncuserusermaycommitnewrevisionsasthisisaread-only,mirrorrepository.”>&2

exit1

Step3:

让镜像版本库使用同步用户修改修订版本属性

为此,我们需要创建一个pre-revprop-change(MIRROR_REPO_PATH/hooks下)钩子,类似于下面的例子,也是shell脚本:

#!

/bin/sh

USER=”$3″

if[“$USER”=“svnsync”];

thenexit0;

fi

echo“Onlythesyncuserusermaychangerevisionpropertiesasthisisaread-only,mirrorrepository.”>&2

exit1

Step4:

注册同步的镜像版本库

在任何平台使用下面的svnsync命令:

svnsyncinitializeURL_TO_MIRROR_REPOURL_TO_MASTER_REPO--username=svnsync--password=svnsyncpassword

如果所有的配置正确,你一定会看到下面的输出:

Copiedpropertiesforrevision0.

现在你已经注册了镜像版本库与主版本库的同步,我们必须继续执行初始的同步,这样镜像版本库才和主版本库是一样的了。

Step5:

执行初始同步

为了确定所有事情已经准备好了,并且执行初始同步,在任何系统只需要执行:

svnsyncsynchronizeURL_TO_MIRROR_REPO--username=svnsync--password=svnsyncpassword

如果所有的同步正确,你会看到类似的输出:

Committedrevision1.

Copiedpropertiesforrevision1.

Committedrevision2.

Copiedpropertiesforrevision2.

Committedrevision3.

Copiedpropertiesforrevision3.…

Step6:

使用post-commit(MASTER_REPO_PATH/hooks下)钩子自动同步

根据初始同步的输出,我们现在要做的就是写一个定时执行或post-commit钩子来同步镜像版本库,我建议post-commit,因为它让你的镜像版本库尽可能的最新,下面是可以用在主版本库上同步镜像版本库的post-commit钩子,一个shell脚本:

#Exampleforsynchronizingonerepositoryfromthepost-commithook

#!

/bin/sh

svnsyncsynchronizeURL_TO_MIRROR_REPO-username=svnsync-password=svnsyncpassword&

exit0

注:

上述钩子脚本需用chmod755使之可运行。

TortoiseSVN使用

svn版本还原

1.推荐的一种方法是,直接export一个你需要的版本,然后用你export的版本覆盖你的最新的版本,这样你就可以不丢失你新建的文件,同时获得最新的SVN版本控制。

操作步骤:

TortoiseSVN→Showlog→选中需要回滚的版本→右键→Export。

之后将修改的文件覆盖到你的最新版本,commit即可。

2.若是你编辑了工程,在没有提交的前提下,你想放弃这些修改,你可以直接选择TortoiseSVN→revert就可以更新到工程的最新的版本。

3.若是你想退回到某一个版本,你就可以直接选择TortoiseSVN→updatetoreversion,这样我们就可以把我们的版本回退到你选中的版本去,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。

我们需要update并解决冲突。

4.你可以直接选择revertchangesfromthisrevision,这样的话你可以直接解决冲突并提交。

不过这种方法的不足是,你新建的文件都没有了,整个工程都回退到之前的版本了。

5.可以从日志中回滚到你需要的版本,从日志中选中你需要的版本,然后Updateitemtoreversion就好了,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。

我们需要update并解决冲突。

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

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1