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

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