簡體   English   中英

在scm-manager中將svn存儲庫遷移到git存儲庫

[英]Migrate a svn repository to a git repository in scm-manager

我已經在Windows Server 2012 R2上安裝了scm-manager 1.45作為服務。

我有一個Subversion版本庫轉儲文件。 我設法將其導入到scm-manager中的subversion倉庫中。 但是我真的想將其遷移到git存儲庫,但是我似乎不知道該怎么做。 我希望所有的提交歷史都可以遵循。

在您用來保留共享存儲庫的工具之外,svn-git和一些命令行魔術將解決您的問題

我假設遷移是從類似Unix的系統完成的,例如Linux,mac或什至在Windows機器上運行的cygwin 如果沒有適當的cygwin安裝,可以嘗試使用在Windows平台上與msysgit一起安裝的'Git Bash'


1#獲取SVN信息庫的貢獻者列表

將提交者列表提取到SVN儲存庫,為此,運行(從SVN儲存庫的根目錄):

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt

它將創建一個具有以下作者列表的文件:

jsmith = jsmith <jsmith>

您需要將其修改為以下內容:

jsmith = John Smith <john.smith@evil_corporation.com>

此步驟很重要,因為git將在下一步中使用該步驟將SVN提交者ID轉換為git提交者ID(請注意,如果願意,可以手動創建此文件)


2#將SVN存儲庫克隆為Git存儲庫

為此,執行:

git svn clone <SVN_repo_URL> -A authors-transform.txt --stdlayout ~/svn-git-migration

哪里:

  • <SVN_repo_URL>是您的SVN存儲庫, authors-transform.txt是您剛創建的文件。

請注意,如果您在SVN儲存庫布局中使用了“標准” SVN分支命名法,則可以正常工作;如果不是這種情況,則需要在git-svn中指定“文件夾”的名稱通過將--stdlayout參數替換為--stdlayout來創建分支:

  • -T (用於干線路徑)

  • -b (用於分支路徑)

  • -t (用於標簽路徑)參數

(您可以在此處找到有關git-svn clone命令的詳細說明)

此步驟可能需要一些時間(它一步一步地詳細說明了SVN增量中的git歷史記錄),但是完成后,SVN存儲庫的git版本將位於您的主目錄中svn-git-migration文件夾中(如果需要,在命令中指定其他路徑)


3#將存儲庫(標簽和主分支)結構轉換為git

注意:這些命令需要在新的git倉庫中執行,因此您需要在上一步中移至已克隆存儲庫的文件夾中

Subversion處理標簽的方式與git不同。 Git tahs僅涉及一次提交(一個git標簽僅包含一個提交ID),但是SVN標簽是分支的特殊王者,因此在這里,我們需要找到存儲庫標簽分支(查看refs / heads / tags)並在所有標簽的頂端貼上標簽:

git for-each-ref --format='%(refname)' refs/heads/tags |
cut -d / -f 4 |
while read ref
do
  git tag "$ref" "refs/heads/tags/$ref";
  git branch -D "tags/$ref";
done

此外,我們需要將主分支重命名(SVN中的主干重命名為git主分支'master'

git branch -m trunk master

現在,只需將新的/遷移的git存儲庫推送到git服務器(scmmanager?),就可以完成:-)。 請記住,您需要將git服務器存儲庫添加為遠程服務器, 在這里您可能會找到一些幫助。

請確保您具有SCM管理器存儲庫所在的讀/寫權限。

  1. 在SCM管理器存儲庫所在的位置創建新目錄MyProject;
  2. 進入MyProject;
  3. 執行命令git svn cloneSURLmanagerSvnRepo的URL ;
  4. 通過SCM管理員“導入存儲庫”->在存儲庫導入向導->選擇目錄中的Git中添加新的存儲庫。
  5. 現在,它應該檢測到您的新存儲庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM