2017-06-22 119 views
1

雖然這聽起來像一個共同的問題,我居然找不到任何 線程與我在#SO有同樣的問題。我如何轉換SVN回購的本地克隆與git

我有一個SVN回購的舊副本(從一個根本不存在回購簽出 - 服務器退役前一段時間)。我想結算該回購提交歷史記錄。我想,因爲在回購的根目錄中有一個「.svn」文件夾,其中有65 + M的數據,應該可以這樣做。

我試了一下,到目前爲止(但不工作):初始化一個新的git倉庫,並嘗試將現有回購與git

# Init empty git repo git init git svn rebase -l

# Init git-svn repo rm -rf .git git svn init http://same/url/as/the/one/used/before/decommissioning/the/server git svn rebase -l

就是我想甚至有可能做到?我正在查找的數據甚至可以脫機使用嗎?

回答

1

I think this is impossible。本地SVN簽出不包含足夠的信息作爲存儲庫。沒有歷史信息 - 全部在服務器上。

您需要一個實時服務器或從svnadmin dump轉儲。

+0

我認爲有可能從烏龜緩存中提取提交歷史,但它似乎需要設置回購站提前離線工作以獲取更多的數據 –

1

工作副本不是存儲庫克隆。 Subversion的工作副本不包含修訂歷史記錄。它是您項目的輕量級本地副本,不適用於遷移修訂歷史記錄。您可以將工作副本的數據導入新的git存儲庫,但不會包含任何更改歷史記錄。

  • 在Subversion方面,repository是被認爲是單個「真實的源」服務器端數據庫。這是一箇中央存儲,您可以通過網絡瀏覽器訪問以查看更改的歷史記錄,並使用它來檢出工作副本以處理版本化數據。

  • working copy是您工作和變更的工作臺。您可以使用它來操作存儲庫 - 修改數據並將更改提交到遠程存儲庫。工作副本的大小通常要小得多,並且通常比存儲庫本身的獲取速度快,因爲工作副本只包含一個項目的分支或中繼(即主服務器)。任何組合的修改都可以從同一個存儲庫或項目中獲得儘可能多的工作副本。