2011-08-08 38 views
2

git blame未向我展示SVN存儲庫的所有歷史記錄,並對其佈局進行了重新組織。重組SVN信息庫上的Git責怪

我正在使用git-svn訪問SVN存儲庫。 SVN倉庫曾經有一個包含大量文件夾樹的結構來保存許多項目。去年,我重新整理了佈局,並將其變爲更標準的主幹/標籤/分支佈局。其結果是,在資源庫中的所有文件都移動了5月17日2010年

從Eclipse中使用Subclipse的SVN客戶端,我可以做Team->註解顯示,它顯示一個文件的歷史記錄我預計 - 在2009年更改的代碼行正確註釋了作者/日期/簽入評論。

但是,我使用git-svn克隆的git存儲庫上的git blame沒有那麼有用。對於2010年5月17日之前修改的所有代碼行,註釋是:me/date 2010年5月17日/評論「重組倉庫...」。

我假設信息仍然存在,有沒有辦法讓git blame顯示它?我非常投機地嘗試git blame -C -C -C...沒有成功。

+0

在svn重命名文件的過程中發生了什麼?一次提交是否刪除_oldName_並添加具有相同內容的_newName_? – Andy

+0

是 - 刪除和添加都在一次提交中。從內存中,我認爲我在Eclipse中的「SVN Repositories」視圖中進行了存儲庫重組。 –

+0

嘗試git blame -C100 –

回答

0

你確定舊的提交出現在git倉庫嗎?也許你的svn重組對於git-svn來說太大了。找到svn修訂版,然後在之前的5月17日移動,然後用git svn find-rev r12345這個數字找到相應的git hash,如果有的話。然後git簽出散列並查看你感興趣的文件是否在其中。

如果您告訴git-svn您的repo使用了「標準」trunk/branches/tags佈局,則可能無法理解其他佈局。您可能需要分兩個階段重做git-svn導入:一個用於舊佈局,然後再用於新佈局。您可以使用-r參數來實現此目的,以便git svn fetch僅獲取給定範圍的修訂版本。