使用SmartGit整合Subversion中央版本庫與Git本地端操作
由於我們公司使用的Subversion版本庫實在太多、太大,一直以來雖然想推動轉換到Git,但始終囿於轉換成本與學習成本而寸步難行,後來終於找到了另一個變通方案使能順利過渡。亦即初期中央版本庫仍為原有的Subversion版本庫,但client則切換為Git,使用的輔助工具則是SmartGit。
SmartGit在今年初突然由8跳到17,原來版本編號改用西元年了,目前最新的版本是17.0.3。SmartGit的Clone可以選擇Git或SVN,只要選用SVN就能把Subversion版本庫複製到本地端了。
雖然Git有內建Git-svn指令,也能複製Subversion版本庫,但速度不甚理想,SmartGit則採用三階段的下載處理,能較快讓我們能開始工作:
- SmartGit先把最後的版本複製下來,即HEAD所指的版本。
- HEAD版本下載後我們就能先開始作業了,其他版本會切換到背景繼續複製。
- 全部下載完成後執行最後的Join Subversion處理。
Subversion的資訊會被存放在 .git/svn 資料夾裡,完整的設定檔是 .git/svn/.svngit/svngitkit.config,內容範例如下:
[svn-git-remote "svn"] url = http://SVN網址 fetch = :refs/remotes/git-svn [misc] program-creation-version = 17.1 preview 7-1493049600000 [core] processExternals = true processIgnores = true processEols = true processTags = true processOtherProperties = true gitSvnAttributesThreshold = 32 [branch "master"] tracks = refs/remotes/git-svn remote = svn [svn-remote-settings "svn"] minimalRevision = 0`
Git的master分支的Tracked branch為git-svn,即SVN的版本庫網址,屆時就能跟操作Git遠端版本庫一樣用Psuh、Pull或SmartGit的Sync了。
當使用Git的各項操作都熟悉後,就能再加入Git的remote版本庫,最終完整切換到純Git的環境了。
##
您可能也會有興趣的類似文章
- [Git #2] 產生SSH金鑰,讓SmartGit與GitHub連線 (0則留言, 2019/12/29)
- [Git#1] SmartGit的安裝與設定 (0則留言, 2019/12/29)
- 啟用Gitea Server的SSH服務,可大幅增加連線速度 (0則留言, 2018/02/15)
- Subversion版本庫匯入Git的步驟與SVN整合步驟 (0則留言, 2014/10/03)
- [Git#8] 用pre-commit檢查提交時的分支是否正確 (0則留言, 2020/04/20)
- [Git#5-2] 補充說明:產生Commit的檔案清單壓縮檔 (0則留言, 2020/04/22)
- [Git#5] 產生Commit的檔案清單與相對路徑的壓縮檔;Windows適用 (0則留言, 2020/04/03)
- [Batch#3 Git#3] 如何在Windows批次檔裡將提示字元變更為Git分支名稱? (初學者的命令行 #7) (0則留言, 2020/01/05)
- 由Subversion檔案庫匯出特定專案的內容 (0則留言, 2005/12/25)
- Git的Staging Area的中文翻譯探討 (2則留言, 2014/09/12)
- [分享] 濱野純訪談:為什麼 Google 接管開發 Git 2.0 了? (0則留言, 2018/05/25)
- [Windows] 用Gitea架設自用的Git Server (2則留言, 2017/07/21)
- [Git#9] Gitea 安裝與設定:輕量級程式碼託管解決方案 (0則留言, 2022/05/22)
- 建立測試環境以git rebase -i變更Commit歷史 (0則留言, 2014/10/08)
- 撰寫git info工具以模擬svn info功能 (0則留言, 2014/09/01)
Sorry, 很久沒用Google sc…