2011-06-16 125 views
36

比方說,我想設置的svn:忽略財產目錄DIR1有多個值,文件1文件2文件3。 如何通過命令行執行此操作,而不使用文本編輯器(設置屬性值)?如何設置svn:忽略多個值?

回答

40

類型酷似這裏換行:

svn propset svn:ignore "file1 
file2 
file3" dir1 

如果要從其他命令傳遞一個列表,請嘗試xargs。 不幸的是,svn命令不允許從stdin-F -讀取。

+0

謝謝。我認爲你的意思是「propset」(而不是「propget」) – Snowcore 2011-06-16 09:16:57

+0

是的,沒錯 - 我正在測試我的hipotesis,並且留下了一個錯字;) – gertas 2011-06-16 10:01:17

+9

這就是爲什麼SVN很糟糕......(但感謝你的回答) – vahidg 2013-02-27 15:57:23

10

用途:

cat > ignorelist << END 
file1 
file2 
file3 
END 

svn propset svn:ignore -F ignorelist dir1 

或不使用外部文件,假設你在Linux或系統/dev/fd

svn propset svn:ignore -F /dev/fd/0 dir1 << END 
file1 
file2 
file3 
END 
+0

謝謝,很明顯。但是如何在不使用外部文件的情況下設置屬性值? – Snowcore 2011-06-16 08:59:52

+0

關於'/ dev/fd':它指的是什麼?軟盤? [/proc/PID/fd/](https://en.wikipedia.org/wiki/File_descriptor)?或者是其他東西? – 2016-11-29 23:37:36

+0

/dev/fd/0是對標準輸入的引用 - 它可以用於像這樣的情況,其中命令需要文件名並且輸入數據不存儲在文件中 – chrisdowney 2016-11-30 18:36:50

19

一號線的解決方案:

svn propset svn:ignore "file1"$'\n'"file2"$'\n'"file3" dir1 
+1

這個在我用''替代字符存在時用於指定svn:externals'中svn倉庫的根目錄。多線解決方案不工作,因爲shell試圖解釋'^' – jplandrain 2014-01-22 09:46:55

+0

這工作正常,但我想知道爲什麼。 $字符在這裏做什麼?它通常用於啓動一個變量,是否正確?還要注意'\ n'周圍的單引號是必需的,並且必須是單引號,而文件名周圍的雙引號僅在它們具有特殊字符(如空格)時纔是必需的。 – trysis 2015-07-13 13:52:00

9

添加多個條目要容易得多。使用以下命令:

svn propedit svn:ignore . 

這將打開一個文本編輯器。現在您可以輕鬆添加多個條目。