SVN库迁移整理方法总结
svn迁移到新服务器的简单方法
svn迁移到新服务器的简单方法首先,我们需要了解SVN(Subversion)是一个用于版本控制的开源软件。
迁移到新服务器可能是由于服务器升级、数据迁移或者其他原因。
下面是一个简单的方法来迁移SVN到新服务器:1. 确保新服务器上已经安装好了SVN软件。
如果没有安装,需先在新服务器上安装SVN。
2. 在旧服务器上,使用SVN的导出命令将项目的代码和历史记录导出为一个压缩文件。
可以使用以下命令:```svn export -r HEAD svn://旧服务器地址/项目路径编号.zip```这将导出项目的最新版本到编号.zip文件中。
3. 将生成的压缩文件拷贝到新服务器上。
4. 在新服务器上,使用SVN的导入命令将压缩文件导入到SVN项目中。
可以使用以下命令:```svn import 编号.zip svn://新服务器地址/项目路径 -m "导入项目"```这将把压缩文件导入到新服务器上的SVN项目。
5. 确保新服务器上的SVN权限和配置与旧服务器相同。
可以通过复制旧服务器上的svnserve.conf和passwd文件来实现。
6. 更新旧项目的SVN URL以指向新服务器。
可以使用以下命令:```svn switch --relocate 旧服务器地址 svn://新服务器地址```这将更新项目的SVN配置,使其指向新的服务器地址。
7. 在新服务器上测试SVN项目是否正常工作。
可以尝试进行一次代码检出和提交来确保一切正常。
这就是将SVN迁移到新服务器的简单方法。
这个方法适用于简单的迁移情况,如果你的项目比较复杂或有特殊需求,你可能需要参考SVN的官方文档或寻求专业的帮助。
SVN服务器与客户端的数据迁移步骤
SVN服务器与客户端的数据迁移步骤:一、原服务端:1.创建一个备份文件夹如:D:\svn_back2.进入cmd,cd命令到你的svn服务器安装目录的bin文件下,本人的安装目录在C:\Program Files\VisualSVN Server\bin 则输入:cd C:\Program Files\VisualSVN Server\bin(进入原服务器的svn安装目录)3.cmd命令行继续输入svnadmin dump E:\SVN\Repositories\ Development > D:\svn_back\svncope.dumpE:\SVN\Repositories\ Development是svn项目工程目录文件夹4.执行完毕之后,可以在D:\svn_bak 文件中找到备份好的文件,格式为svncope.dump注意:若SVN版本过多,svncope.dump文件生成需耐心等待二、新服务器端:1.根据系统(32位/64位)安装对应版本的TortoiseSVN和VisualSVN2.创建一个备份文件夹如:D:\svncope3.将svncope.dump文件拷贝到新服务器的备份文件夹里,如目录为D:\svncope\svncope.dump4.进入cmd,cd命令到你的svn服务器安装目录的bin文件下,本人的安装目录在C:\Program Files\VisualSVN Server\bin 则输入:cd C:\Program Files\VisualSVN Server\bin(进入新服务器的svn安装目录)5.cmd命令行继续输入svnadmin create D:\Repositories\svndatabackD:\Repositories\svndataback是svn项目工程目录文件夹(这个是在新服务器端创建SVN服务器的svndataback项目)6.cmd命令行继续输入svnadmin load D:\Repositories\svndataback < D:\svncope\svncope.dump (这个是将源服务器上导出的版本库,导入到现在的服务器上。
SVN迁移及备份的方法【转】
SVN迁移及备份的⽅法【转】备份策略==============svn备份⼀般采⽤三种⽅式:1)svnadmin dump2)svnadmin hotcopy3)svnsync.注意,svn备份不宜采⽤普通的⽂件拷贝⽅式(除⾮你备份的时候将库暂停),如copy命令、rsync命令。
笔者曾经⽤ rsync命令来做增量和全量备份,在季度备份检查审计中,发现备份出来的库⼤部分都不可⽤,因此最好是⽤svn本⾝提供的功能来进⾏备份。
优缺点分析==============第⼀种svnadmin dump是官⽅推荐的备份⽅式,优点是⽐较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。
缺点是:如果版本⽐较⼤,如版本数增长到数万、数⼗万,那么dump的过程将⾮常慢;备份耗时,恢复更耗时;不利于快速进⾏灾难恢复。
个⼈建议在版本数⽐较⼩的情况下使⽤这种备份⽅式。
第⼆种svnadmin hotcopy原设计⽬的估计不是⽤来备份的,只能进⾏全量拷贝,不能进⾏增量备份;优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚⾄不需要恢复,只需要进⾏简单配置即可切换到备份库上⼯作。
缺点是:⽐较耗费硬盘,需要有较⼤的硬盘⽀持(俺的备份机有1TB空间,呵呵)。
第三种svnsync实际上是制作2个镜像库,当⼀个坏了的时候,可以迅速切换到另⼀个。
不过,必须svn1.4版本以上才⽀持这个功能。
优点是:当制作成2个镜像库的时候起到双机实时备份的作⽤;缺点是:当作为2个镜像库使⽤时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样⼦”;⽽当作为普通备份机制每⽇备份时,操作⼜较前2种⽅法⿇烦。
备份的命令==============全备份:使⽤svnadmin dump或svnadmin hotcopy或svnsync来做,hotcopy:svnadmin hotcopy path/to/repository path/to/backup –clean-logsdump:svnadmin dump 版本库路径及名称 –revision 导出的版本号> 导出的命名增量备份:使⽤svnadmin dump的–incremental选项来实现svnadmin dump 版本库路径及名称 –revision 上次导出的版本号:到本次要导出到的版本号 –incremental > 导出的命名⼀个技巧:如果你有⼀个较⼤的Subsersion版本库⽽你⼜想⽤最少的空间来将它备份下来,⽤这个命令(请将/repo替换成你的版本库路径)吧:svnadmin dump –deltas /repo |bzip2 |tee dump.bz2 | md5sum >dump.md5分步解释:最重要的⼀步是 -deltas,将消耗更多的CPU资源,但拥有更有效的差异存储办法。
VisualSVN跨版本库迁移目录并保留changelog日志
VisualSVN跨版本库迁移目录并保留changelog日志
目前使用Visualsvn进行代码管理是十分常见的工具。
随着产品的演变,代码迁移是比较常见的情况了。
同一个库中的代码的转移在Visualsvn中就是移动目录,十分方便。
当遇到从一个库转移到另一个新库中的时候,就比较麻烦了。
现在有一份代码code在版本库reposA/dirB/下,现在想把它移动到reposB/dirAA/。
这时,需要给reposB/dirAA下新建一个dirB文件夹。
再次执行命令
这里要注意的是,reposB中的svn记录号rev,会随着每次导入而递增。
所以如果第一次出错了之后再导入,这样的rev号就会一直递增。
如果想要保持rev号一致的话,就要删掉reposB库重新导入。
这样就把reposA/dirB/code/转移到了reposB/dirAA/code/,并且保留了相应的提交日志changelog,大功告成。
windows环境下TortoiseSVN多仓库(repository)转移合并lilin的小窝
windows环境下TortoiseSVN多仓库(repository)转移合并lilin的小窝windows环境下TortoiseSVN多仓库(repository)转移合并因为本文适用于个人适用版本管理,做些一个人的开发用。
否则windows的共享文件夹,甚至网盘的方式,也并不安全,毕竟库文件在里面没有锁住的机制,不安全。
但是一个人的话,就没这个问题了。
而且是一种非常方便的管理方式。
TortoiseSVN在windows下的客户端实在太好用了,而且根delphi等开发环境先天集成,方便做开发管理版本源码适用。
网上居然没有现成的教程,也没做过,貌似。
关键在于,使用svnadmin工具,这个工具在subversion中默认提供。
问题:两个不同的版本库,放在不同的及其上,各有数个项目在里面,为了统一管理,我现在都集中在一个仓库内,然后用金山快盘,多个机器同步。
回答:完美包含版本信息,把双库融合,方便管理同步。
步骤分为三步:1、dump出两个不同仓库的内容到不同dump文件。
目录结构如下svnadmin dump f:/temp/svn1/ > f:/svnbackup/1.dumpsvnadmin dump g:/temp/svn2/ > f:/svn4backup/2.dumpF:SVNBACKUP├─1.dump└─2.dump2、在目标位置新建一个SVN目录,然后右键选择,“TortoiseSVN”–>”Create repository here”建立起来一个新的SVN库直接OK,不用建立目录结构。
3、导入这俩dump文件到第二步建立的新仓库包内:直接都导入根目录下面svnadmin load f:/svn/ < f:/svn3/1.dumpsvnadmin load f:/svn/ < f:/svn3/2.dump期间cmd控制台会出现很多<<< 开始新的事务,基于原始版本 81* 正在增加路径: StockWayRec/src ...完成。
SVN迁移
SVN迁移一、需求:由某种原因,需将SVN服务器迁移到另外一台机器上,并且更换Repository目录。
二、步骤1备份1) 说明:需将原来的存储库导出为一个文件dumpfile 。
2) 命令格式<pathToSvnServer>\svnadmin dump <RepositoriesFolder> > dumpfile3) 命令示例"C:\Program Files (x86)\VisualSVN Server\bin\svnadmin.exe" dumpF:\Repositories\repo > d:\svn-backup.dump2. 还原1)说明将dumpfile导入到新的repository 目录中。
注意安装新svn服务器时要设置好对应的信息,如端口及结构等2)前提在新的SVN中创建好存储库,如 repo3) 命令<pathToSvnServer>\svnadmin load <RepositoriesFolder> < dumpfile4)命令示例"C:\Program Files (x86)\VisualSVN Server\bin\svnadmin.exe" loadD:\Repositories\repo < e:\svn-backup.dump假设备份文件复制到 E:\,且存储库在 D:\3.恢复配置1) 说明将原先服务器的配置文件备份后复制到新服务器中如:原存储库目录下的authfile、auth.conf也需要备份后复制到新服务器对应目录中。
使用gitsvnclone迁移svn仓库(保留提交记录)
使⽤gitsvnclone迁移svn仓库(保留提交记录)使⽤git svn clone迁移svn仓库clone命令可以指定很多参数,主要⽤到这些,你也可以使⽤git svn help查看完整的参数列表。
git svn clone https://172.16.0.241:8443/svn/xxx/ -r 76896:HEAD --no-metadata --authors-file=svnuser.text --trunk=svnproject --branches=svnbranch yourGitProject1. r指定起⽌版本号。
2. no-metadata阻⽌git导出SVN包含的⼀些⽆⽤信息。
3. authors-file必须指定svn帐号在git中的映射。
4. trunk指定导出仓库的主⼲项⽬路径。
5. branches指定svn的分⽀项⽬路径。
注意:clone命令需要管理员权限,否则会遇到下⾯的异常:couldn't truncate file .... at line 1393.你要做的就是右键使⽤管理员⾝份运⾏CMD,然后使⽤fatch继续执⾏导出。
git svn fatch -r 76896:HEAD --authors-file=svnuser.text当然这并不是唯⼀的坑,你还有可能会遇到下边的错误:0 [main] perl 24432 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdumpfatal: malformed index info 100644 362f1c18ceed5d593eb021432545685283a93要解决这个问题,请打开隐藏项⽬找到.git/config⽂件,⽂件⼤概长这个样⼦:[core]repositoryformatversion = 0filemode = falsebare = falselogallrefupdates = truesymlinks = falseignorecase = truehideDotFiles = dotGitOnlylongpaths = true[svn-remote "svn"]...重要的就是longpaths = true这⼀句,然后fatch继续。
两个SVN仓库之间代码的转移
两个SVN仓库之间代码的转移背景:1、公司的svn服务器架设在了公司内⽹环境中,没有公⽹ip,所以离开了公司环境就⽆法访问(更新、提交。
)svn服务器了;2、四个开发⼈员去客户现场开发新的需求,在现场找了⼀台服务器临时搭建的svn服务器,不过由于环境变化⼤,都是在⾃⼰的笔记本上搭建的svn服务器,这样便于记录代码改动的地⽅,有log可查,需要⼏个⼈同步代码的时候使⽤U盘直接拷贝;3、每天下班之前把现场的代码在发给公司同事,然后由公司同事提交,保持现场和公司两个svn上⾯的代码⼀致;4、不过没过多久(不到两周),⼜回到公司继续开发,本来可以直接check公司svn服务器的代码继续开发,但是svn上其中的⼀个eclipse 项⽬没有更新到公司的svn服务器上,所以才有了本⽂。
回到公司,发现了问题,如何把现场的svn代码,提交到公司的svn服务器上⾯,由于代码量有限,想到了⼀个办法:1、先在公司的svn上更新⼀版最新的项⽬到本地---暂且称为company_svn;2、本地拷贝⼀份现场的项⽬代码(不直接在现场的svn代码上修改,⽅式出错),然后删除所有的与svn有关的⽂件(搜索*.svn,然后把根⽬录的.svn⽬录也删除掉)---暂且称之为local_svn;3、拷贝local_svn所有的⽂件和⽬录到company_svn⽬录下,win7下会出现提⽰信息:选择是,然后会出来如下提⽰:把最下⾯的复选框选中,选择复制和替换。
当此操作完成的时候,就可以提交company_svn到svn服务器了。
也就完成了local_svn到company_svn的svn代码迁移。
修订(2013-06-19):svn不像cvs⼀样,会在每个⽬录下都有相应的⽂件产⽣,所以如果想去掉svn的⽂件,只需要删除.svn⽬录就可以了。
svn配置库迁移整理
备注:本文章是关于两种不同svn服务器端类型的配置库迁移的两种方式;分析:服务器需要安装:CollabNetSubversionEdge-4.0.4_setup-x86_64.exeJDK:确认系统是64或者32位,进行jdk安装方案一(倾向于服务器是collabSVN,也适用于服务器是visualSVN,subversion的,需要验证):一、数据迁移1、把相应的repository(配置库)从旧服务器复制到新服务器-----就是把csvn文件夹下的data\repositories文件夹拷贝到新服务器上2、在”版本库”页面选择”发现版本库”-----打开http://localhost:3343/csvn/在Repositories界面,点击Discover按钮,会看到所有新增的项目,在页面上有系统提示的关于新增项目权限的修改,按照提示进行操作即可,然后在本地进行checkout测试(检出某个目录就好了);二、用户迁移1、从原机器中拷贝{安装路径} \data\conf下的svn_auth_file svn_access_file文件到新机器。
2、修改{安装路径}\data\csvn-production-hsqldb.script文件。
复制类似INSERT INTO USER VALUES(1,2,'adminuser','admin@',TRUE,'f52c7457507a292a11bf8d274d720ee 4','Super Administrator','admin')的语句到新服务器的对应文件。
3、重新启动服务三、可访问http://localhost:3343/csvn重新设置用户的权限和版本库的规则。
方案二(倾向于服务器是visualSVN,subversion的):1.停止在旧服务器的svn服务,使用svnadmin dump repos > dumpfile 命令将配置库进行备份;2.在新服务器上创建新配置库,使用svnadmin create newrepos3.将就服务器上备份的配置库导入到新配置库中,使用svnadmin load newrepos < dumpfile4.将旧服务器的权限文件一并拷贝到新服务器上;5.开启svn服务;6.将新配置库地址告知研发,可以在本地TortoiseSVN右键--Relocate--svn URL输入新的配置库路径,点击确定,就成功重定位了本地副本,可以像以前一样操作了;实际操作:svn服务器部署程序:1.安装64位jdk 1.62.安装CollabNetSubversionEdge-4.0.4_setup-x86_64.exesvn项目迁移可行性和稳定性测试:1)服务器是CollabSVN的测试步骤:a.把csvn\data\repositories文件夹下项目拷贝到新服务器上b.把csvn\data\conf文件夹下svn_access_file svn_auth_file文件拷贝到新服务器对应位置c.登录http://localhost:3343/csvn/,进入“版本库”页面,点击discover,发现刚才拷贝进去的项目d.在c打开的网页,“管理”页面,启动服务器e.在本地进行checkout,看内容是否与之前一致d.测试结束2)服务器是visual svn或者subversion的测试步骤:a.把svnadmin创建的配置库拷贝到新服务器的csvn\data\repositories文件夹下b.把配置库/conf文件夹下的authz passwd文件内容拷贝到,csvn\data\conf文件夹下的svn_access_file svn_auth_file文件中c以后都同CollabSVN一样操作注意:在正式操作过程中首先复制一个项目,按完整步骤做完一个流程确认无误之后,停止svn服务,在操作剩下的;发现:实际上只要安装好服务器,在登录的服务器网页中启动配置库之后,不在手动停止,服务器不关机,svn服务就是一直启动的;。
linux的svn迁移事项
linux的svn迁移事项
将SVN迁移到Linux系统上可能涉及以下事项:
1. 安装SVN服务:在Linux系统上安装SVN服务,可以使用包管理工具或从SVN官网下载源代码进行编译安装。
2. 导出旧的SVN仓库:使用旧的SVN服务将仓库导出为SVN格式或SVN备份格式。
3. 导入仓库到新的SVN服务:将导出的仓库导入到新的SVN服务中。
可以使用svnadmin命令进行导入。
4. 迁移配置文件:将旧的SVN服务的配置文件转移到新的SVN服务中,以保留原有的设置和权限。
5. 迁移钩子脚本:将旧的SVN服务的钩子脚本转移到新的SVN服务中,以保留原有的自定义操作。
6. 更新客户端配置:在Linux系统上的SVN客户端中更新配置文件,以指向新的SVN服务。
7. 迁移用户认证信息:如果旧的SVN服务使用了用户认证机制,需要将用户认
证信息迁移到新的SVN服务中。
8. 测试和验证:迁移完成后,通过测试和验证确保SVN仓库在新的Linux系统上正常运行,并且所有之前的提交和版本历史仍然可用。
请注意,在执行所有操作之前,请务必备份旧的SVN仓库,以防止意外情况发生。
SVN现有的库迁移到另外一台服务器
SVN现有的库迁移到另外一台服务器
FSFS格式的库
基于win的系统
1)建议迁移之前,通知使用库的所有人员,先行暂停对版本库的操作,然后停止该库的svn服务(若svn服务为命令行窗口,关闭即可;若为系统服务,cmd-〉services.msc,找到对应库的svn服务-〉右键菜单“停止”)
2)迁移的3种方法:
i)直接拷贝原库的目录到另一台服务器,然后启动服务,即可使用。
(个人感觉此法最简单,但适用于体积不大的库);
ii)使用备份命令svnsync备份的目标库,与直接copy的区别在于版本号0(它记录了源库的位置),需要重新配置下权限,启动服务,即可访问;
iii)在另一台服务器上create一个新库,使用命令行:svnadmin dump 旧库路径|svnadmin load 新库路径,启动服务后,即可访问;。
数据库迁移与同步的高效实践方法与经验总结
数据库迁移与同步的高效实践方法与经验总结数据库迁移和同步是在软件开发和日常运维工作中经常遇到的重要任务。
它们涉及到将数据从一个数据库系统迁移到另一个数据库系统或将数据从一个环境同步到另一个环境。
在本文中,我们将介绍一些高效的数据库迁移和同步的实践方法和经验总结。
1. 数据库备份与恢复:在进行数据库迁移和同步之前,首先必须进行数据库的备份。
备份可以保证在迁移或同步过程中出现问题时,可以快速恢复到原始状态。
常见的数据库备份方法包括全量备份和增量备份。
全量备份是将整个数据库的数据和结构都备份下来,而增量备份只备份自上次备份以来发生变化的数据和结构。
选择合适的备份方法可以提高迁移和同步的效率。
2. 寻找合适的数据库迁移与同步工具:有许多优秀的数据库迁移和同步工具可供选择,如Flyway、Liquibase、DMS等。
这些工具提供了强大的功能和易用的界面,能够帮助开发人员和运维人员高效地进行迁移和同步工作。
选择合适的工具可以简化迁移和同步的过程,提高工作效率。
3. 制定详细的迁移与同步计划:在进行数据库迁移和同步之前,制定详细的计划是非常重要的。
计划应该包括迁移和同步的各个步骤、时间安排、风险评估等内容。
制定计划可以帮助团队成员明确各自的角色和责任,并提前预测潜在的问题和挑战。
这样可以避免一些无谓的麻烦。
4. 进行数据清洗和整理:在进行数据库迁移和同步之前,通常需要对数据库中的数据进行清洗和整理。
这包括删除无用的数据、修复错误的数据、调整数据结构等。
数据清洗和整理可以提高数据的质量和一致性,并且可以减少迁移和同步过程中的问题。
5. 迁移和同步数据的验证:在完成数据库迁移和同步之后,必须对迁移和同步的数据进行验证。
这可以通过比较源数据库和目标数据库的数据进行实现。
验证的结果应该是源数据库和目标数据库的数据一致,并且迁移和同步过程中没有丢失数据。
验证是确保迁移和同步结果正确的重要步骤。
6. 控制迁移与同步的风险:在进行数据库迁移和同步时,有一些风险是必须要注意的。
svn 迁移 拷贝方式
svn迁移拷贝方式一、概述版本控制系统(Version Control System,VCS)是开发团队中必不可少的工具之一。
其中,Subversion(简称svn)是一款流行的集中式版本控制系统,被广泛应用于软件开发过程中。
在软件开发中,迁移svn仓库并拷贝代码是一项常见的任务。
本文将介绍svn迁移的意义、常见的迁移方式以及注意事项。
二、svn迁移的意义随着项目的发展和需求的变化,可能需要将svn仓库从一个服务器迁移到另一个服务器,或者从一个svn服务提供商迁移到另一个服务提供商。
迁移svn仓库可以带来以下几点好处:1.性能优化:迁移到新的服务器或服务商可以提供更好的性能和响应速度,提高开发效率。
2.稳定性提升:可能旧的服务器或服务商存在稳定性问题,迁移可以解决这些问题,提升系统稳定性。
3.成本降低:某些新的svn服务提供商可能提供更具竞争力的价格,迁移可以降低版本控制的成本。
4.功能扩展:如果需要使用新的功能或者集成其他工具,迁移可以满足这些需求。
因此,svn迁移是一个具有重要意义的任务,需要谨慎规划和执行。
三、常见的svn迁移方式在迁移svn仓库时,有多种方式可供选择。
常见的svn迁移方式包括以下几种:1. svnsync方式svnsync是svn自带的一种复制方式,用于将一个svn仓库完全复制到另一个仓库。
这种方式适用于简单的仓库迁移,但需要确保目标仓库与源仓库兼容,并且源仓库是只读的。
2. svnsync + dump/load方式这种方式结合了svnsync和dump/load命令。
首先使用svnsync复制源仓库到目标仓库,然后使用dump/load命令导出和导入源仓库的历史记录。
这种方式适用于在迁移过程中需要进行一些变更的情况,如更改仓库结构、删除某些文件等。
3. svnadmin dump/load方式这种方式是将源仓库导出为一个数据备份(dump)文件,然后再将该文件导入到目标仓库中。
svn 迁移 git方案
svn 迁移git方案1. 使用git-svn工具迁移SVN仓库git-svn是一个Git命令行工具,它支持使用Git与Subversion(SVN)管理的项目进行协作。
使用git-svn工具迁移SVN仓库的步骤如下:1.1 安装git-svn工具根据您的操作系统安装git-svn工具,例如对于Ubuntu系统,可以使用apt-get install git-svn命令来安装。
1.2 克隆SVN仓库使用git svn clone命令克隆SVN仓库到本地:git svn clone <SVN仓库地址> <本地目录>此命令将克隆SVN仓库到本地目录。
1.3 提交Git仓库使用git push命令将对Git仓库进行的更改推送到远程Git仓库:git push origin master此命令将将Git仓库中的更改推送到远程Git仓库。
2. 使用GitLab Migration Tool迁移SVN仓库GitLab Migration Tool是GitLab提供的一个工具,它可以将SVN项目转换为Git仓库,并将其导入GitLab。
2.1 安装GitLab Migration Tool在GitLab服务器上安装GitLab Migration T ool工具。
2.2 配置GitLab服务器在GitLab服务器上配置GitLab Migration T ool。
2.3 迁移SVN仓库使用GitLab Migration Tool将SVN仓库转换为Git仓库,并将其导入GitLab。
2.4 使用GitLab使用GitLab管理迁移后的Git仓库。
以上是两种将SVN仓库迁移至Git的方案,具体选择取决于您的需求和实际情况。
SVN服务器与客户端的数据迁移步骤
SVN服务器与客户端的数据迁移步骤SVN服务器与客户端的数据迁移步骤:一、原服务端:1.创建一个备份文件夹如:D:\svn_back2.进入cmd,cd命令到你的svn服务器安装目录的bin文件下,本人的安装目录在C:\Program Files\VisualSVN Server\bin 则输入: cd C:\Program Files\VisualSVN Server\bin(进入原服务器的svn安装目录)3.cmd命令行继续输入svnadmin dump E:\SVN\Repositories\ Development > D:\svn_back\svncope.dumpE:\SVN\Repositories\ Development是svn项目工程目录文件夹4.执行完毕之后,可以在D:\svn_bak 文件中找到备份好的文件,格式为svncope.dump注意:若SVN版本过多,svncope.dump文件生成需耐心等待二、新服务器端:1.根据系统(32位/64位)安装对应版本的TortoiseSVN和VisualSVN2.创建一个备份文件夹如:D:\svncope3.将svncope.dump文件拷贝到新服务器的备份文件夹里,如目录为D:\svncope\svncope.dump4.进入cmd,cd命令到你的svn服务器安装目录的bin文件下,本人的安装目录在C:\Program Files\VisualSVN Server\bin 则输入: cd C:\Program Files\VisualSVN Server\bin(进入新服务器的svn安装目录)5.cmd命令行继续输入svnadmin create D:\Repositories\svndatabackD:\Repositories\svndataback是svn项目工程目录文件夹(这个是在新服务器端创建SVN服务器的svndataback项目)6.cmd命令行继续输入svnadmin load D:\Repositories\svndataback < D:\svncope\svncope.dump (这个是将源服务器上导出的版本库,导入到现在的服务器上。
svn 数据迁移 方案
svn 数据迁移方案迁移SVN(Subversion)数据通常涉及将版本控制系统的仓库、历史记录等内容从一个环境迁移到另一个环境。
下面是一个基本的SVN 数据迁移方案的概述:1.备份原始 SVN 仓库:在进行迁移之前,务必创建原始 SVN 仓库的备份。
这是防止在迁移过程中出现问题时能够回滚到原始状态的关键步骤。
svnadmin dump /path/to/original_repo > original_repo_backup.dump2.设置新的 SVN 仓库:在目标环境中创建新的 SVN 仓库。
svnadmin create /path/to/new_repo3.还原备份到新的 SVN 仓库:将原始 SVN 仓库的备份还原到新的 SVN 仓库中。
svnadmin load /path/to/new_repo < original_repo_backup.dump4.修改仓库配置(可选):在新的仓库中可能需要对配置进行一些修改,这取决于迁移的具体情况。
例如,如果原始仓库使用了钩子脚本,需要确保在新仓库中重新配置。
5.更新工作副本:在进行迁移后,用户的工作副本需要更新以与新仓库同步。
可以通过以下命令在工作副本中进行更新:svn switch --relocate old_repo_url new_repo_url注意事项:版本号处理: SVN 仓库中的版本号可能会发生变化。
在迁移后,需要通知团队并确保所有相关方了解版本号的变化。
外部依赖项:如果原始 SVN 仓库中使用了外部依赖项,确保它们在新仓库中也得到了正确的配置。
权限和用户信息:确保在迁移过程中处理好权限和用户信息,以确保与原始仓库相同的访问和权限设置。
请注意,上述步骤是一个通用的迁移方案,具体的实施可能会根据具体的情况和要求有所调整。
在进行 SVN 数据迁移之前,请务必详细阅读 Subversion 文档,并根据具体需求调整迁移方案。
svn 迁移 拷贝方式
svn 迁移拷贝方式随着软件开发的发展,版本控制工具在项目管理中扮演着至关重要的角色。
其中最流行的版本控制工具之一就是 SVN。
但是,有时候我们需要把 SVN 仓库迁移到一个新的地址,或者需要备份 SVN 仓库,这时就需要使用 SVN 迁移拷贝方式了。
SVN 迁移拷贝方式指的是将一个 SVN 库完全拷贝到另一个地方,包括所有历史记录、分支和标签等信息。
这种方式比起其他方式更加安全可靠,因为它确保了完整性和一致性。
下面介绍具体操作过程:1. 安装 SVN要进行 SVN 迁移拷贝,首先需要安装 SVN。
可以在 SVN 的官网上下载适合自己系统的 SVN 安装包,并按照提示进行操作。
2. 创建目标仓库在目标机器上创建一个新的 SVN 仓库。
可以使用 SVN 自带的svnadmin 工具命令来创建,例如:svnadmin create /path/to/new/repository3. 进行备份在源机器上使用 svnadmin 工具命令创建备份文件进行备份,例如:svnadmin dump /path/to/repository >repository_backup.dump该命令会将仓库路径 /path/to/repository 的所有历史版本备份到 repository_backup.dump 文件中。
4. 进行迁移将备份文件 repository_backup.dump 拷贝到目标机器上,使用svnadmin 工具命令进行转储,例如:svnadmin load /path/to/new/repository <repository_backup.dump这将把备份文件中的仓库数据加载到目标仓库中。
在此过程中可能会遇到一些错误,需要逐个解决。
5. 进行验证转储完成后,需要进行验证以确保迁移成功。
可以使用 svnlook 工具命令来查看新仓库的内容,例如:svnlook tree /path/to/new/repository这将列出新仓库中的所有文件和目录。
SVN版本库的迁移
SVN版本库的迁移方案一、一次全部迁移首先新建三个批处理文档(新建记事本,后缀改为.bat)①导出.batsvnadmin dump progect > dumpfile②新建版本库.batsvnadmin create newProgect③导入.batsvnadmin load newProgect < dumpfile步骤:如果你的SVN装在C:\program files下,那么:a、将“导出.bat”放在原库目录下,即progect 所在目录下(例如E:\progect),双击执行,导出版本库!b、将“新建版本库.bat”放在新库目录下,即newProgect 要放的位置(例如D:\progect),双击执行,新建版本库!c、将“导入.bat”放到新库目录下(例如刚才的E:\progect),双击执行,导入版本库!如果你的SVN不是装在上述位置,那么:这三个批处理文件,要全部放在SVN安装目录的Bin目录下,而且也不能单纯的写文件名就可以了,要写完整的文件名。
例如svnadmin dump E:\SVN版本库\progect > E:\dumpfile说明:上述步骤即实现将progect 版本库无损迁移到newProgect。
这里是采用批处理文件的形式,完全可以在命令提示符窗口下,以命令的形式完成上述操作,注意必须在相应的目录下执行。
方案二、分批增量迁移版本库①查看当前旧版本库最新的版本号是多少在命令提示符窗口,打开库所在目录,例如:cd E:\progect。
执行svnlook youngest progect例如返回版本为281②分批增量导出版本库内容E:\Repositories\svnadmin dump progect -r 0:100 > dumpfile1导出第一个文件,版本号从0到100的修订版本E:\Repositories\svnadmin dump progect -r 101:200 --incremental >dumpfile2导出第二个文件,版本号从101到200的修订版本E:\Repositories\svnadmin dump progect -r 201:281 --incremental >dumpfile3导出第三个文件,版本号从201到281的修订版本注:三个命令中第2,3个命令多了一个--incremental的参数,使其采用了增量的方式导出首先导入dumpfile1,然后是dumpfile2,dumpfile3 依次执行D:\Repositories\svnadmin load newProgect < dumpfile1D:\Repositories\svnadmin load newProgect < dumpfile2D:\Repositories\svnadmin load newProgect < dumpfile3可能会出现的问题,提示错误:版本库文件已经存在。
SVN仓库备份和迁移
SVN仓库备份和迁移author: yunqimg(ccxtcxx0)前言本文主要是讲 SVN 仓库的全量备份和增量备份,只包括基本操作.如有疑问请参考 References.仓库备份•svnadmin dump1.备份方式多样2.如果版本数过多,dump的过程将非常慢3.备份耗时,恢复更耗时4.备份时数据变大,恢复后数据可能会变小5.仓库下的passwd和authz不会备份•全备份在需要备份SVN仓库的服务器上执行如下命令sudo svnadmin dump /path/repository > /path/repository-backup.2019-12-27•做版本0-2的备份sudo svnadmin dump /path/repository -r 0:2 --incremental > /path/repository-backup_0-2.2019-12-27•incremental 参数说明它使用增量方式来导出版本,即每次都只导出自上一个版本以来的修改。
这样的好处是--第一:可以把一个大的文件切分成若干个小的文件。
第二:在版本库已经存在的情况下,我们只需要每次导出修改的部分,不需要每次都导出整个版本库的内容。
甚至可以通过hook脚本每天晚上自动将当天的修改dump出来做备份用。
仓库迁移•使用SCP等工具,将备份的文件传输到目标服务器上,例如/home目录下.# 建立新的svn仓库sudo svnadmin create /path/new_repository# 导入数据sudo svnadmin load /path/new_repository < /home/reposit ory-backup.2019-12-27。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SVN库迁移整理方法总结
前段时间对项目SVN库做整理, 顺带再次研究了下SVN迁移的方式,整理如下:
SVN数据库迁移方法一
称之为SVN全库操作,或称SVN全局备份并恢复,版本库数据的移植:svnadmin dump、svnadmin load
导出:
$svnadmin dump repos > dumpfile //将指定的版本库导出成文件dumpfile
新建:
$svnadmin create newrepos
导入:
$svnadmin load newrepos < dumpfile
SVN数据库迁移方法二
增量备份或批次备份,批次恢复,特定reversion导出:
$svnadmin dump repos –r 23 >rev-23.dumpfile //将version23导出
$svnadmin dump repos –r 100:200 >rev-100-200.dumpfile //将version100~200导出
批次导出:对比较大的库可以批次导出,便于备份
$svnadmin dump repos –r 0:1000 >0-1000.dumpfile
$svnadmin dump repos –r 1001:2000 --incremental >1001-2000.dumpfile
$svnadmin dump repos –r 2001:3000 --incremental >2001:3000.dumpfile
批次导入,将这几个备份文件装载到一个新的版本库中
$svnadmin load newrepos < 0-1000.dumpfile
$svnadmin load newrepos < 1001-2000.dumpfile
$svnadmin load newrepos < 2001:3000.dumpfile
SVN数据库迁移方法三
导出后,在导入时对库做分库整理或其它整理操作过滤版本库历史:
假设有一个包含三个项目的版本库:calc,calendar,和spreadsheet。
它们在版本库中的布局如下:
/
calc/
trunk/
branches/
tags/
calendar/
trunk/
branches/
tags/
spreadsheet/
trunk/
branches/
tags/
现在要把这三个项目转移到三个独立的版本库中。
首先,转储整个版本库:
$ svnadmin dump /path/to/repos > repos-dumpfile
* Dumped revision 0.
* Dumped revision 1.
* Dumped revision 2.
* Dumped revision 3.
然后,将转储文件三次送入过滤器,每次仅保留一个顶级目录,就可以得到三个转储文件:$ cat repos-dumpfile | svndumpfilter include calc > calc-dumpfile
$ cat repos-dumpfile | svndumpfilter include calendar > cal-dumpfile
$ cat repos-dumpfile | svndumpfilter include spreadsheet > ss-dumpfile
现在你必须要作出一个决定了。
这三个转储文件中,每个都可以用来创建一个可用的版本库,不过它们保留了原版本库的精确路径结构。
也就是说,虽然项目calc现在独占了一个版本
库,但版本库中还保留着名为calc的顶级目录。
如果希望trunk、tags和branches这三个目录直接位于版本库的根路径下,你可能需要编辑转储文件,调整Node-path和Copyfrom-path头参数,将路径calc/删除。
同时,你还要删除转储数据中创建calc目录的部分。
一般来说,就是如下的一些内容:
Node-path: calc
Node-action: add
Node-kind: dir
Content-length: 0
警告:
如果你打算通过手工编辑转储文件来移除一个顶级目录,注意不要让你的编辑器将换行符转换为本地格式(比如将\r\n转换为\n)。
否则文件的内容就与所需的格式不相符,这个转储文件也就失效了。
剩下的工作就是创建三个新的版本库,然后将三个转储文件分别导入:
$ svnadmin create calc; svnadmin load calc < calc-dumpfile
$ svnadmin create calendar; svnadmin load calendar < cal-dumpfile $ svnadmin create spreadsheet; svnadmin load spreadsheet < ss-dumpfile
svndumpfilter的两个子命令都可以通过选项设定如何处理“空”修订版本。
如果某个指定的修订版本仅包含路径的更改,过滤器就会将它删除,因为当前为空的修订版本通常是无用的甚至是让人讨厌的。
为了让用户有选择的处理这些修订版本,svndumpfilter提供了以下命令行选项:
--drop-empty-revs
不生成任何空修订版本,忽略它们。
--renumber-revs
如果空修订版本被剔除(通过使用--drop-empty-revs选项),依次修改其它修
订版本的编号,确保编号序列是连续的。
--preserve-revprops
如果空修订版本被保留,保持这些空修订版本的属性(日志信息,作者,日期,自
定义属性,等等)。
如果不设定这个选项,空修订版本将仅保留初始时间戳,以及
一个自动生成的日志信息,表明此修订版本由svndumpfilter处理过。
尽管svndumpfilter十分有用,能节省大量的时间,但它却是把不折不扣的双刃剑。
首先,这个工具对路径语义极为敏感。
仔细检查转储文件中的路径是不是以斜线开头。
也许Node-path和Copyfrom-path这两个头参数对你有些帮助。
Node-path: spreadsheet/Makefile
如果这些路径以斜线开头,那么你传递给svndumpfilter include和svndumpfilter exclude 的路径也必须以斜线开头(反之亦然)。
如果因为某些原因转储文件中的路径没有统一使用或不使用斜线开头,也许需要修正这些路径,统一使用斜线开头或不使用斜线开头。
此外,复制操作生成的路径也会带来麻烦。
Subversion支持在版本库中进行复制操作,也就是复制一个存在的路径,生成一个新的路径。
问题是,svndumpfilter保留的某个文件或目录可能是由某个svndumpfilter排除的文件或目录复制而来的。
也就是说,为了确保转储数据的完整性,svndumpfilter需要切断这些复制自被排除路径的文件与源文件的关系,还要将这些文件的内容以新建的方式添加到转储数据中。
但是由于Subversion版本库转储文件格式中仅包含了修订版本的更改信息,因此源文件的内容基本上无法获得。
如果你不能确定版本库中是否存在类似的情况,最好重新考虑一下到底保留/排除哪些路径。
备份环境注意点:
1、确保没有其他进程访问版本库,关闭apache、svnserve服务
2、成为版本库的管理员,如果以其他身份还原版本库,可能会改变版本库文件的访问权限,导致在恢复后依旧无法访问
3、svnadmin recover /path/to/repos
4、重新启动服务进程
SVN数据库整理方法
不经过dump,load操作,实现SVN数据库整理操作,先设计好调整后的目录, 然后打开版本库, 选中要调整或转移的文件(文件夹)-->右键拖住,不要松手-->然后将要转移的文件(文件夹)拖至目标文件夹-->松手-->选择move items to here-->完成
每经过这样的调整,大家都会担心历史记录是否还会存在, TortoiseSVN在默认情况下, 是不会显示出来的,需要将一个选项去除.
如此可实现基于库的调整操作,但事事不是尽如人意的,这样的一次操作下来,revision会增长好多。
我的想法是:
停止当前SVN服务,将当前的SVN库直接进行整理,就像整理存储在电脑中的文件夹一样,然后开启SVN服务,即时显示调整后的效果,哈哈..是不是有点异想天开,其实我也觉得这是不太可能的,除非使用工具访问,否则SVN库不是显示可见的,希望以后啥配置管理工具可以让管理员有这样的权限.。