VisualSVN 从Windows迁移到LInux
2017-08-18 16:23
148 查看
一、备份VisualSVN项目
1. 现在要使用Linux作为svn服务器,之前是在windows Server 2008上的,用的是VisualSVN2.现在svn中有一个项目fpp,需要将fpp这个项目导出到linux环境下。运行cmd,输入命令 svnadmin dump E:\Repositories\fpp > e:\svnbak\fpp.dump将项目导出到e:\svnbak目录下。运行结果如下:
3. 可见命令会导出每个版本的详细信息,保证了之前的历史信息不会丢失。现在我们便得出备份文件fpp.dump,如下:
4. 利用批处理实现项目的批量导出,编写svnbak.bat, 双击运行,会一次性导出所有项目,结果如下图:
二、上传备份文件到Linux
1. 利用ftp, ssh等工具将fpp.dump文件传输到Linux服务器上,这里利用直接利用openSSH这个软件上传。如图,文件上传成功,文件的路径为/root/fpp.dump。三、Linux下SVN的安装与配置
1. Linux下安装svn,这里直接利用yum命令进行安装。yum install subversion完成subversion的安装。2. 建立版本库目录svndata。
mkdir /svndata
svnserve -d -r /svndata #启动svn,设置版本库目录为/svndata
killall svnserve #关闭svn
3. 建立项目库
svnadmin create /svndata/fpp
4. 配置用户访问权限
cd /svndata/fpp/conf
vi svnserve.conf
释放如下几行的注释
anon-access=none
auth-access=write
password-db=passwd
5. 增加访问用户,格式为(username = password),等号两边要加空格,否则无效。如下图,没有加空格,就一直没用:
6. svn的命令这里不作介绍,大家自己去学习使用。
四、导入备份文件
1. 输入命令:svnadmin load /svndata/fpp < /root/fpp.dump,运行结果如下:2. 为了避免逐个导入项目,所以写了一个shell脚本,进行批量导入,遍历备份目录下所有*.dump文件,并产生相应的导入命令,15个项目,花了10分钟左右完成导入,脚本如下:
五、客户端进行代码的检出
1.windows端安装TortoiseSVN, 右键svn checkout2. 在打开的对话框中,输入svn库的地址,确定便可以同步项目。地址如下,ip地址加项目名称,如图:
3. svn提示检出成功,在目录下可以找到检出的项目。
4. 对于以前的项目,重定向到新的svn服务器,右键->TortoiseSVN->Relocate,在弹出的对话框中填写新的地址,TortoiseSVN会提示修改成功,之后,就可以使用新的svn了。
5. 如果你是使用eclipse中的subeclipse的插件,首先打开svn资源库视图,然后选择你的项目,右键选择重定向,填入新的svn地址。
6. linux下若使用svn命令的话,形式如下:
svn switch --relocate (Old Repository Root) (New Repository Root)
VisualSVN Server仓库迁移到Linux(包含所有版本, 权限,用户信息)
公司开发服务器从Windows换成CentOS,所以要把原服务都转移到Linux下,MySQL、SMB的迁移都很顺利,但是SVN的转移却遇到了些问题,花费了三天时间,走了不少弯路,现在总算解决了SVN迁移问题,记录下:
在Windows上我们是用VisualSVN Server作SVN服务的,Linux上是编译安装的subversion 1.7.7。
Windows 的SVN仓库在E:\SVNRepositories,Linux在 /data/svnrepos
第1步,导出VisualSVN仓库:svnadmin dump E:\SVNRepositories\repo1 E:\repo1.dump
第2步,在Linux端create相同名称的仓库: svnadmin create /data/svnrepos/repo1
第3步,在Linux端load Windows导出的库:
cd /data/svnrepos
svnadmin load repo1 < repo1.dump
到此为止,repo1库就导入到Linux的subversion中了,但是用户信息、权限信息还没导入(这也是我折腾很久的问题),继续:
第4步,把E:\SVNRepositories\authz 上传到 /data/svnrepos
把E:\SVNRepositories\htpasswd 复制为 passwd 并修改后上传到 /data/svnrepos
修改后的passwd格式如下(其实就是用户名 = 密码):
[users]
user1 = 123
user2 = 456
第5步,修改仓库的/conf/svnserve.conf,使它指向第4步上传的那两个文件:
[general]
anon-access = none
auth-access = write
password-db = ../../passwd
authz-db = ../../authz
到这里就完成了,用命令 svnserve -d -r /data/svnrepos/ 启动subversion服务。
这样做还有个问题是passwd文件原密码信息全丢失了,知道解决方法的请留言告诉我:)
打开passwd可以看到之前的密码是加密的,而放到linux上,需是明文,修改密码到明文即可。
我只用了repo1这个仓库,如果有多个仓库一样步骤,分别导出导入,并修改仓库的/conf/svnserve.conf
[此步骤,可以利用linux批量查找替换功能,将密码文件指定到../../的passwd文件]
如果按照上述方法操作还是不行,启动svnserve时用 --log-file ./log.txt参数查看错误信息
参考了这个贴子 http://stackoverflow.com/questions/10836587/linux-how-to-set-up-global-user-passwords-groups-file-in-svn
常用命令总结:
#启动svn,设置版本库目录为/Repositories svnserve -d -r /usr/local/Repositories #关闭svn killall svnserve windows服务器导出: svnadmin dump F:\Repositories\item1 > F:\svnbak\item1.dump 创建项目资源 svnadmin create /usr/local/Repositories/item1 还原备份文件到资源库 svnadmin load /usr/local/Repositories/item1 < /usr/local/Repositories/item1.dump svn导出路径 svn://172.16.28.70/item1
相关文章推荐
- 从 Windows 向 Linux 迁移设备控制应用程序
- oracle 数据库由Linux平台向Windows平台迁移
- windows迁移linux问题集锦
- 从 Windows 向 Linux 迁移设备控制应用程序
- 90 mysql Linux mysql 数据库迁移到 windows
- 将mysql数据从Windows迁移到Linux中
- 投靠Linux第一步 Windows数据向Linux迁移(4)
- windows上的svn服务器迁移到linux
- oracle11g windows迁移至linux
- SVN服务器从Windows迁移到LInux
- 如何将MySQL从Windows迁移到Linux
- Windows项目迁移到Linux记录
- 从Windows迁移SQL Server到Linux
- svn_auth系统由windows迁移到linux下遇到的问题
- windows 网站迁移到linux
- CVS2.5 windows部署和linux文件迁移
- 投靠Linux第一步 Windows数据向Linux迁移(2)
- windows下的mysql迁移到linux下
- 数据库迁移windows->linux ORACLE 10G
- Windows 上的Oracle 迁移到Linux上的方法