当因为内存限制或者其他某些原因,我们需要将svn版本从一个 服务器 A迁移到另外一个服务器B,本篇文章为大家讲解一下傻瓜式SVN版本库迁移。
dunp方式可分为全量导出和增量导出
全量导出:
压缩备份:[root@aliyunhome]svnadmindump/home/svn/repos1|gzip>./repos1.gz不压缩备份:[root@aliyunhome]svnadmindump/home/svn/repos1>./repos1.svn
增量导出:
[root@aliyunhome]svnadmindump/home/svn/repos1-r0:50>repos1[root@aliyunhome]svnadmindump/home/svn/repos1-r51:100--incremental>repos2[root@aliyunhome]svnadmindump/home/svn/repos1-r101:150--incremental>repos3
注意了如果是增量导出(新版本库中已经导入过版本)需要加–incremental 参数
新服务器上创建版本库
[root@svnhome]svnadmincreate/home/svn/reposnew
将导出的备份文件复制到新服务器上并导入该文件
压缩过的文件不能直接导入,需要解压(所以如果两台服务器可以内网通信完全不需要进行压缩)
[root@svnhome]gzip-drepos1.gz[root@svnhome]svnadminload/home/svn/reposnew
未压缩文件直接导入即可:
[root@svnhome]svnadminload/home/svn/reposnew
如果是分版本导入出现该错误提示就是因为导出文件时没有加参数 –incremental 导致:
[root@svnhome]svnadminload/home/svn/reposnew'reposnew/db',......
迁移了SVN版本库自然的本地电脑上的地址也需要更换,windows 下如下:
在弹出框中修改为新的地址即可。
如果服务器上有直接从SVN版本库中提取代码,那么也是需要修改地址,先查看服务器上对于目录的信息可以获取到SVN地址:
[root@aliyunhome]svninfo/data/wwwroot/Path:.WorkingCopyRootPath:/data/wwwroot/URL:svn://192.168.31.8/cnyunwei/RepositoryRoot:svn://192.168.31.8/cnyunweiRevision:335.......
修改地址通过svn switch 命令,基本格式如下:
[root@aliyun]svnswitch--relocatesvn://old_IPADDR/repos例如上面这个目录就需要调整为:
[root@aliyun]svnswitch--relocatesvn://192.168.31.8/cnyunwei/再次查看信息就会变更了:[root@aliyun]svninfo/data/wwwroot/Path:.WorkingCopyRootPath:/data/wwwroot/URL:svn://192.168.31.10/cnyunwei/RepositoryRoot:svn://192.168.31.10/cnyunwei.......

到此SVN 的迁移才算完成了。
svn add 如何增加子目录下的未受控文件
svn add * 会忽略所有已经在版本控制之下的目录。
如果希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add的--force递归到版本化的目录下。
svn add — 添加文件、目录或符号链。
描述如下:文件、目录或符号链到的工作拷贝并且预定添加到版本库。
它们会在下次提交上传并添加到版本库,如果在提交之前改变了主意,可以使用svn revert取消预定。
git init,git add和git commit三者的区别和使用
git init(版本库初始化命令)1、$git init之后可以在demo目录下看到看到一个隐藏文件夹,这个文件夹就是版本库,而demo目录及其子目录就是工作区。
git add(将工作区文件提交到暂存区stage)2、$git add文件从工作区被提交到暂存区,但此时文件并没有真正进入到版本库当中,文件目前只处于一个中间状态。
3、git commit(将暂存区文件提交到版本库中)$git commit这个命令将处于中间状态的文件(暂存区的文件)提交到版本库中,这时才算真正完成了一次提交过程。
值得一提的是,如果此时添加一行文字到$echo “hello” >> 此时文件发生了改动,如果希望将修改后的文件提交至版本库,必须先git add将修改后的文件存入暂存区,再git commit将文件从暂存区提交至版本库才可以,这和svn有很大的区别,SVN在添加新文之后每次修改的文件直接commit就可以了。
CVS的作用是?
CVS是一款软件版本管理工具,能将代码或者文件的不同版本都记录下来,便于管理,查找,可以为不同目录不同人分配不同权限,大家可以同时使用,像数据库一样,有人上传或者修改文件,其他人在本地刷新就能获得。
SVN是CVS的更新替代软件,改进了一些CVS的缺陷,如CVS不能在客户端删除文件夹,不能重命名,不能转移文件等。
发表评论