svn数据回滚和数据备份,SVN分支与合并透析

数据回滚参考网址

http://likenice.iteye.com/blog/1143833

SVN分支与合并透析

http://blog.csdn.net/fbysss/article/details/5437157

windows下如何备份导出SVN库、导入SVN库?

一、目的

如何将c:\svnroot下的各个库备份到c:\svnbak?

如何将c:\svnbak下各个库的备份文件导入到svn库下?

二、备份SVN库。将svn库备份导出到c:\svnbak,生成dump文件。

在cmd命令行里输入:
svnadmin dump c:\svnroot\repos1   > c:\svnbak\repos1.dump

windows下如何备份导出SVN库、导入SVN库?

三、导入备份库到新的SVN库下。

1,在svnroot目录下新建空文件夹repos2,在repos2下建库,具体方法请参考偶的原创经验《如何在windows上安装部署设置SVN服务器》。

svnadmin load  c:\svnroot\repos2  < c:\svnbak\repos1.dump  (将c:\svnbak下库的备份文件repos1.dump导入到新库repos2 下。)

windows下如何备份导出SVN库、导入SVN库?

四、导入备份库到某一个库的某一个文件夹下。

1,在已存在库repos1下,新建文件夹trunk。创建方法为,邮件单击文件空白处,选择“TortoiseSVN->Repo-browser”,在URL输入svn://localhost/repos1,弹出的对话框中,按照如下方法创建文件夹。

2,在在cmd命令行里输入

svnadmin loadC:\svnroot\repos3  --parent-dir /trunk< c:\svnbak\repos1.dump

(将c:\svnbak下库的备份文件repos1.dump导入到repos1下的trunk文件夹下。)

windows下如何备份导出SVN库、导入SVN库?
windows下如何备份导出SVN库、导入SVN库?

 

导入备份库到新的SVN库下时,一定要新建库!

http://jingyan.baidu.com/article/ca00d56c900dd8e99eebcf81.html

用svnsync 同步备份任意两个svn 版本库

如用svnsync 同步备份两台机器的svn 。要同步的项目名称:svn_repossvn 版本库1.4 以上源目录: svn://192.168.108.254/svn_repos 同步目标目录: http:// 目标IP:8080/svn/svn_repos/方法:

 

1. 如果目标目录 存在相同的项目,请先清除,重新建立空项目svnadmin create svn_repos

 

2. 在 192.168.120.190 ( 目标目录 )-> cendyn 目录下hooks 目录下,建立pre_revprop-change.bat 全部内容只有一行:exit 0如果用拷贝同目录下的pre_revprop-change.tmpl 则必须删除最后三行的内容或替换为只有一行:exit 0 不然下面初始化同步的时候,将停顿.

 

3. 执行 初始化(在目标目录 )svnsync init http:// 目标IP:8080/svn/svn_repos/ svn://192.168.108.254/svn_repos即svnsync init 目标库 源库 将向你询问登录目标库和源库的用户名和密码,建议为两个库设置相同的用户名及相同的密码正确后,显示Copied properties for revision 0.

 

4. 执行同步(目标目录 )svnsync sync http:// 目标IP:8080/svn/svn_repos/

 

5. 更新同步windows 下:在源库的hooks 下面,添加post-commit 脚本可拷贝post- commit.tmpl->post- commit.batset SVN_HOME="C:Install Filessvnserverin" %SVN_HOME%svnsync sync --non-interactive http://192.168.120.190:8080/svn/cendyn --username R00130 --password 123

 

linux 下:在源库的hooks 下面,添加post-commit 脚本可拷贝post-commit.tmpl 即 cp post-commit.tmpl post-commit然后把 post-commit 中,最后两行替换为 svnsync sync --non-interactive http://192.168.108.187:8080/svn/svn_repos/ --username edison --password edison即提交更新后,即执行同步命令,不进行交互把post-commit 设为755 权限。 ps :如果post-commit 脚本出错,或者无可执行权限,在提交更新时会报错。

 

错误处理 : 在源端 , 同步用的帐号需要有读权限 , 在目的端同步帐号需要读写权限 . 权限分配合理后 , 基本上就不会出现其他错误 . 如果出现以下列出的之外的错误 , 请先检查一下 svn 服务是否可正常使用 。

 

比较常见的错误是 :# svnsync initialize DEST_URI SRC_URI --username cax --password password_for_caxsvnsync: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existentsvnsync: At least one property change failed; repository is unchanged这是由于系统中没有 pre-revprop-change 钩子脚本导致的 , 该文件在版本库的 ~/hooks/ 下 , 只需拷贝一份即可 .cp -pf hooks/pre-revprop-change.tmpl hooks/pre-revprop-change如果是 windows 系统 , 还需要清空 pre-revprop-change 的内容 , 并添加后缀为 pre-revprop-change.bat在批处理文件中 , Linux 下 shell 中注释符 # 不能被 batch 正确解释也会重复出现该错误 。

http://jingyan.baidu.com/article/a3761b2b828f381576f9aaa3.html

posted on 2014-07-08 09:23  分不清马铃薯淀粉  阅读(331)  评论(0)    收藏  举报