2013-03-20 16 views
2

我知道整個dump | filter | load,obliteration等問題。我同意通常你不需要從歷史中刪除文件。從svn倉庫過濾大量敏感代碼

但是我有我認爲是一個特例。 在過去的幾年中,我的團隊正在研究一些iOS項目,但並不都是密切相關的,但他們共享一些通用代碼,並且他們在相同的svn回購中進行管理。

現在的問題是:公司已決定將一個的進一步開發轉讓給第三方。我們需要爲他們提供該項目的代碼 - 包括歷史記錄 - 但我們不想爲其他項目提供代碼。

我該怎麼做?由於Svndumpsanitizer的作者記載的原因,轉儲過濾週期並不能解決問題。不幸的是,Svndumpsanitizer本身也沒有。 我目前的做法是將回購遷移到git,在那裏您可以刪除歷史記錄。但我認爲這是一種矯枉過正。

+1

他們真的需要你的修訂歷史嗎?這對他們真的有什麼好處呢?根據我的經驗,這樣的交付從來沒有涉及歷史,只是在交接時代碼。 – invertedSpear 2013-03-20 21:48:48

+1

最初我們給他們的代碼。他們詢問了歷史,因爲「它可以幫助理解代碼」。我們正在努力遵守。 – noamtm 2013-03-20 22:07:59

+0

如果有幫助,您可以接受和/或提出答案。謝謝! – bahrep 2014-08-28 13:46:18

回答

2

The official Apache Subversion FAQ entry只要我看到ATM就適用於你的情況。

新的方法,可以讓你過濾庫歷史按說應該有所幫助:

您可以svnsync工具複製存儲庫配置否認閱讀到需要被過濾掉任何路徑訪問基於路徑的授權規則後來自存儲庫歷史。

不像svndumpfiltersvnsync將自動不可讀的源路徑進入正常添加,如果歷史涉及複製操作需要過濾這是有用的翻譯複製操作。

也檢查這個答案:https://stackoverflow.com/a/13720677/761095

+0

謝謝。奇怪的是,我錯過了這種方法,但它看起來並不理想:我必須手動將所有不允許的目錄列入黑名單。更糟的是,黑名單必須對回購協議的所有修訂都是正確的。我錯過了什麼嗎? – noamtm 2013-03-21 08:43:27

+0

+1,因爲這是一個很好的答案;沒有標記爲「答案」,因爲它沒有解決我的問題。 – noamtm 2014-08-31 10:53:14