2010-08-19 169 views
1

我想讓svn忽略目錄中的大數據文件。由於目錄中的所有文件共享相同的擴展名,因此在svn:ignore中指定一個模式不會。有沒有辦法說「忽略大於N MiB的文件」?SVN忽略大文件

+2

爲什麼你只想排除一個類型的大文件而不是其他類型的文件?這是否違背了您的項目的完整,一致和修訂副本的想法?通常我只排除從SVN樹生成或外部的文件。 – 2010-08-19 12:05:08

+0

是的,但我的存儲庫大小有限,所以我需要謹慎地提交。此外,這些都是數據文件,它們從來沒有真正改變過。 – mbatchkarov 2010-08-19 22:07:47

回答

4

將要忽略(可能使用一個操作系統工具,如發現在Linux上)的文件的列表,然後做這樣的事情:

svn propset svn:ignore "*" --targets filelist.txt 
+0

不是真正的OP所要求的:''忽略大於N MiB的文件?'',也許特定的文件可能會改變,並且他們在忽略大文件的更一般的解決方案之後? =) – Rob 2010-08-19 12:01:26

+2

svn propset命令沒有內置的基於文件大小進行過濾的功能。沒有關於OP可用的其他工具的信息,我相信這是除了手動發佈一系列svn propset命令之外最常用的解決方案。 filelist.txt文件可以根據需要進行編輯/重新生成。 – ChrisH 2010-08-19 13:43:19

1

基本上我會寫遍歷一個命令行腳本如果文件大小大於您定義的邊界,則所需文件類型的所有文件都會執行@ChrisH提到的svn propset命令。

如果您的Windows this stackoverflow question可能會有所幫助。

0

將要忽略(可能使用一個操作系統工具,如發現在Linux上)的文件的列表,然後做這樣的事情:

svn propset svn:ignore "*" --targets filelist.txt 

如果你把@ ChrisH的答案並將其與預先提交的鉤子結合起來,以解決問題。

使用驚人的指南here,編寫一個預先提交的鉤子,使用@Johannes Wachter引用的命令過濾每個文件。