簡體   English   中英

從svn到git,移動后備箱

[英]From svn to git, with a moved trunk

我正在嘗試將我的svn存儲庫切換為git。 它是一個舊的存儲庫,之前的維護者之一為每個新版本移動了主干。 例如,以前的存儲庫位於:

  • SVN + SSH://svn.mycompany.com/project/release_1/trunk

現在,我們目前的主干是:

  • SVN + SSH://svn.mycompany.com/project/release_N/trunk

當我簽出SVN第二個存儲庫時,我有完整的歷史記錄,包括復制之前的歷史記錄。 但是,當我git-svn第二個存儲庫時,我沒有舊的歷史記錄(來自release_1,...)。 第一次提交是release_{N-1}release_N/trunk的副本。

這是我嘗試過的:

  • git svn clone --no-minimize-url --authors-file my-authors-file svn + ssh://svn.mycompany.com/project/release_N/trunk my_project.git

由於這不起作用,我嘗試了別的東西。 我們假設'復制提交'是K,我嘗試過:

  • git svn clone --no-minimize-url -r BASE:K --authors-file my-authors-file svn + ssh://svn.mycompany.com/project/release_N/trunk my_project.git

這次git-svn找不到任何提交。

你知道是否有一個神奇的技巧來擁有完整的歷史?

這就是我對這個問題的理解:
您的歷史分布在幾個svn分支(這些分支恰好都稱為主干)。 移動到git時,您會想要所有這些歷史記錄。

我認為以下內容將解決您的問題:

git svn init my_project.git

git config svn-remote.svn.url svn+ssh://svn.mycompany.com/project
git config svn-remote.svn.fetch release_N/trunk:refs/remotes/trunk
git config svn-remote.svn.branches */trunk:refs/remotes/*
git config svn.authorsfile my-authors-file

git svn fetch

這將創建release_N分支作為trunk,其余版本作為git存儲庫中的不同分支。

據我所知,你不能讓一個git svn分支指向多個url,這是我認為你試圖做的。

暫無
暫無

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

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