SVN仓库转移和上传至Github

这篇文章讲了两个内容

  1. SVN仓库的转移(linux->windows)
  2. SVN转移至Github

SVN仓库的转移

  1. 原SVN服务器端(linux)执行dump命令进行备份
#svnadmin dump /{path}/{project_name} > {dump_name}
svnadmin dump /home/svn/manage > manage_back
  1. 会得到一个manage_back的一个文件, 拷贝至新SVN服务端的机器(windows)上
  2. 在新SVN服务端(windows)创建新的仓库, 并写入.
#svnadmin create /{path}/{project_name}
svnadmin create E:/Repositories/manage
 svnadmin load E:/Repositories/manage < manage_back
  1. 由于只拷贝了仓库信息, 会丢失其他配置文件(用户密码之类的), 可以直接拷贝原服务器端的conf. 我这里是重新设置用户密码的, 没有设置用户就checkout会提示权限问题.

SVN转移至Github

  1. 获得当前仓库的用户信息, 这里使用的是svn-migration-scripts.jar将信息写入到auth.txt中
java -jar svn-migration-scripts.jar authors https://127.0.0.1:8443/svn/manage > auth.txt
auth.txt
cn = cn <[email protected]>
test = test <[email protected]>
  1. 修改auth.txt, 格式svn用户名 = github用户名 <github邮箱>, 只需修改有github账号的即可, 也就是我只修改第一行就行了, test那行可以不动.

  2. 拉取数据, 这里使用的是标准的SVN格式布局, 所以用--stdlayout, 如果SVN仓库是非标准的目录布局,那就需要分别显示指定参数--trunk={path}, --branches={path}, --tags={path}, 有就加, 没有就不加

git svn clone --stdlayout --authors-file=auth.txt https://127.0.0.1:8443/svn/manage manage
  1. 拉取之后, 进入{prpject_name}显示三个文件git svn fetch进行合并下
  2. github创建新的仓库, 准备上传至github
  3. 在{project_name}文件夹内添加remote_urlgit remote add origin {[email protected]/user/project}
  4. 上传git push origin master

到此SVN成功上传至Github上, 提交记录都是存在的.

参考:
1.https://blog.waterstrong.me/svn-to-git-migration
2.https://www.lovelucy.info/codebase-from-svn-to-git-migration-keep-commit-history.html
3.https://www.jianshu.com/p/29f0d634aba5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章