2010-04-21 51 views
1

例如,我只想要某個分支或項目的3條記錄。如何限制svn保存的歷史數量?

非常感謝!

更新: 謝謝你們的回答。 也許這不是一個好問題。我有一個框架回購和幾個引用框架的項目。我通常繼續在一個項目上工作,有時我需要更新框架。但是,由於我的框架更新,我不想影響任何其他項目,但我可能沒有時間再次更新每個項目的框架更改。所以我考慮的解決方案是在每個項目的框架中添加.dll,以便每個項目都可以緩存一個dll版本,而且不會中斷。然而,我不希望我的svn保留很多dll簽入,所以我想出了上述問題.....我只是認爲我應該在每個項目中保留一份框架源代碼的副本,而不是dll 。一旦我決定使用更新的框架,我可以對每個項目的框架副本進行合併。這聽起來更好。

+1

這是不可能的。按照設計,Subversion保留所有永恆的*所有*的歷史。你爲什麼只想要三個? – 2010-04-21 05:49:07

回答

1

根據你的更新,你應該看看svn:externals從每個項目中使用框架(dll或可能是源代碼)來引用框架區域。另一方面,你可以存儲二進制文件,SVN也會使用增量。所以它不應該是一個空間問題。

+0

svn:外部符合我的情況。我可以用它來讓我的項目總是最新的,或者繼續進行一些修改。另外我還可以選擇在我的一些項目中創建一個框架的分支。涼! – Frank 2010-04-21 07:16:52

0

SVN沒有任何內置的方式來做到這一點,但如果你真的想(不知道你爲什麼會這樣做),你可以定期運行下面的代碼(在這個例子中,我假設你的HEAD版本是200,因此3之前是197):

svnadmin dump /path/to/repo -r196:200 > svn.dump 
rm -rf /path/to/repo 
svnadmin create /path/to/repo 
svnadmin load /path/to/repo < svn.dump 

這將執行整個存儲庫,您不能對單個項目執行此操作。

1

不幸的不是。 SVN旨在成爲信息的堡壘。您不能將其限制爲x修訂量。

這也是你不能完全或者輕易的原因刪除什麼都來自SVN完全。他們希望能夠帶出刪除命令命令來處理無需轉儲您的存儲庫以刪除某些內容(如完全從repo中刪除),但它已經在相當一段時間的工作。看看這裏more information

0

您可以使用svndumpfilter從存儲庫轉儲中刪除特定的項目。