2009-08-09 45 views
64

我看到是有可能查看使用proplist變種和-R標誌(遞歸)和-v標誌(詳細)一個SVN倉庫內的每個目錄設置的屬性的列表:如何查看所有被svn忽略的模式:在SVN存儲庫中遞歸忽略?

svn proplist -Rv 

這說明我的一切屬性,如svn:mime-type或svn:executable。我期待過濾這只是svn:ignore屬性。我確信有一些方法可以通過shell命令從這個命令中獲得結果,它只會顯示我感興趣的行,但我無法弄清楚如何去做。作爲最有用的東西類型的一個例子是某種類型的命令(但這不起作用!)。

svn proplist -Rv | grep "^ svn:ignore" | awk "{print \$1}" 

我只是不知道有足夠的瞭解像grepawk shell命令,使這項工作對我來說。這只是一遍又一遍地顯示「svn:ignore」,但它不打印svn:ignore屬性的目錄路徑或內容。以下是我想要抓取的「svn proplist -Rv」的輸出示例,其中'cache'是路徑,'*'是屬性的值。

Properties on 'cache': 
    svn:ignore 
    * 

如何用上述的命令進行的工作和/或是否有更好的方式來查看我的倉庫都svn:ignore屬性?

+1

關於awk的一些技巧:對內聯腳本使用單引號是很常見的,所以您不必轉義$,它實際上也可以爲您進行正則表達式匹配:'awk'/ pattern/{print $ 1}'。我不知道svn - 你想在與'svn:ignore'相同的行上看到的數據是什麼?如果沒有,你的問題有點棘手。如果是這樣,你是否想要第二個領域? – Cascabel 2009-08-09 21:05:32

+0

我試圖看到不幸的數據是* not *與svn:ignore不在同一行。這是直接在上面和下面的內容。在我的問題的例子中,我想抓取路徑「緩存」,還有「*」,因爲*表示「緩存」中的所有內容都被忽略。感謝您在awk上的提示。 – stereoscott 2009-08-09 21:08:04

+0

我的不好 - 我正在尋找樣本輸出,並以某種方式剔除它。 – Cascabel 2009-08-09 21:11:37

回答

131
svn pg -R svn:ignore . 

...與pg是用於propget一個速記符號,所以這等於...

svn propget -R svn:ignore . 
+11

@Ram - 這並不遞歸工作。像SVN一樣,Git允許你[忽略模式應用於子目錄](http://www.kernel。org/pub/software/scm/git/docs/gitignore.html#_description),而不僅僅是一個根.gitignore。你想'cat \'找到-name .gitignore \'| less'或'find -name .gitignore -exec cat {} \; |更少「,既不如使用-R開關IMO那麼漂亮。 (這就是說,我喜歡你的[博客文章](http://blog.garlicsim.org/post/9583964892/a-git-users-first-and-hopefully-last-foray-into)。我正在學習Git從Subversion,看看柵欄的另一邊是很有趣的!) – 2011-08-30 13:21:06

+2

'git svn show-ignore | grep -ve'^#\ |^[[:space:]] * $'> .gitignore' – 2014-12-13 03:18:32

1

對不起,這裏末跳,但是這裏有一個簡單的解決方案。

Just grep。

svn proplist -Rv | grep svn:ignore -B1 -A1 

顯示一行前,一行後匹配。