2011-11-30 275 views
18

我正在使用git svn clone進行從SVN存儲庫到Git存儲庫的單向轉換。大多數例子都是通過--no-metadata這個標誌來實現的 - 使用這個標誌有什麼好處嗎?在git svn clone中使用--no-metadata是否有優勢?

我知道該標誌刪除了SVN修訂號。我可以想到爲什麼保持這些原因可能有用的原因(例如回頭提到bug跟蹤軟件中提到的特定提交)。

什麼是對於使用--no-metadata標誌?除了打破一切聯繫之外,還有什麼好處嗎?

回答

12

它實際上是不建議:

此選項不推薦,因爲它使得它難以追查 到SVN版本號舊引用現有的文檔中,錯誤 報告和檔案。如果您計劃最終從SVN遷移到 git,並確定要刪除SVN歷史記錄,請考慮使用 git-filter-branch(1)。篩選器分支還允許重新格式化元數據 以便讀取和重寫作者信息 非「svn.authorsFile」用戶。

+13

這根本不回答問題。我們知道這不是推薦,但它在那裏;它有什麼意義,它有什麼好處呢?對於想要使用此選項,可能有什麼理由? – thecoshman

+0

@thecoshman +1沒有任何理由 – pinkvoid

11

使用--no-metadata的一個參數是它不會更改提交消息。所以,即使你從不同的位置獲取,提交消息也是相同的,因此提交哈希將是相同的。

舉個例子,如果我git svn init從本地file: URL回購,後來從https: URL拉,在回購每次提交將被複制,因爲所有的git-svn-id: file:///提交的...將被檢取爲git-svn-id: https:/// ...並用新的SHA1編碼。

如果我指定--no-metadata那麼提交消息和這個sha1將是相同的,我可以從本地文件系統或Subversion服務器中獲取,因爲只有git repo中的任何給定svn提交的單個副本。

個人而言,我寧願它如果有一個最小的元數據選項,它記錄了顛覆修訂ID,但不是全部元數據,但沒有與git-filter-branch亂搞,我們堅持全有或全無。

+1

這個元數據可能導致的另一個問題是,當git認爲它應該創建來自不同根的提交時, '/ project/trunk'而不是'/ project'。這可能會導致git中的提交不同,即使它們在SVN中是相同的。 – jpmc26

相關問題