2009-08-09 43 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 

显示一行前,一行后匹配。