使用SVN:忽略无视一切,但某些文件(Using svn:ignore to ignore ever

2019-06-26 02:38发布

随着svn:ignore属性,有没有我可以指定我想在此基础上,我不想忽略忽略模式有什么办法? 换句话说,我想不顾一切,但在名为.xyz结尾的文件。 我怎么会去这样做(如果它甚至有可能)?

我已经探索一种选择是犯我想要的一切进行版本控制,然后设置的svn:忽略目录属性为“*”,从而意味着没有其他的文件,但我已经承诺将进行版本控制。 这是我能拿出最好的,但如果我做过需要添加其他文件为版本,我不得不进行多次承诺......一个删除了svn感觉在那个肮脏的:忽略属性,另一添加/提交新文件(S),然后第三个改变的svn:忽略回“*”。

你的意见?

Answer 1:

没有,没有独家配套像你描述。 本文列出了模式匹配的可能性。 它不限于:

  • ? - 匹配任何单个字符
  • * -匹配任何字符串,包括空串
  • [ -开始通过终止的字符类定义] ,用于匹配字符的子集

类似的问题被问已经在这里 。



Answer 2:

看一看http://www.thoughtspark.org/node/38 。 很明显,你可以用“!” 在字符组否定它的意义。 所以,如果你想忽略除非.java结尾的文件的一切,设置以下模式的svn:忽视:

*[!j][!a][!v][!a]
*.java?*


Answer 3:

这是我知道的唯一的解决办法。 即使被忽略,虽然你可以明确地添加文件。

您将需要补充的是设置在所有子目录虽然。

# Create a repository with property ignore *

[wlynch@orange ~] cd /tmp
[wlynch@orange /tmp] svnadmin create foo
[wlynch@orange /tmp] svn co file:///tmp/foo co
Checked out revision 0.
[wlynch@orange /tmp] cd co
[wlynch@orange co] svn propset svn:ignore \* .
property 'svn:ignore' set on '.'

# Create 3 files

[wlynch@orange co] touch a
[wlynch@orange co] touch b
[wlynch@orange co] touch c

# We can add all 3 of these files in one transaction

[wlynch@orange co] svn status
M     .
[wlynch@orange co] svn add a
A         a
[wlynch@orange co] svn add b
A         b
[wlynch@orange co] svn status
M     .
A      a
A      b
[wlynch@orange co] svn add c
A         c
[wlynch@orange co] svn ci
Sending        .
Adding         a
Adding         b
Adding         c
Transmitting file data ...
Committed revision 1.


Answer 4:

这是我的设置bin文件夹svn:ignore属性匹配除了APK文件的所有内容:

*[!a][!p][!k]
*a[!p][!k]
*ap[!k]

如果将有充分的RegExp的支持,你可以使用负回顾后,但是这很少反正实现(例如未在JavaScript)和效率低下。



Answer 5:

我和下面的作品摆脱的其他建议一些怪癖。

*.?
*.??
*.???
*.[!j]???
*.?[!a]??
*.??[!v]?
*.???[!a]
*.?????*

通过线说明的行如下:

  • 忽略了一个字母的扩展名的一切
  • 忽略了两个字母扩展一切
  • 忽略具有三个字母的扩展一切
  • 忽略具有四个字母的扩展都在扩展的第一个字母是不是Ĵ
  • 忽略具有四个字母的扩展都在扩展的第二个字母不是
  • 忽略具有四个字母的扩展都在扩展的第三个字母不是V
  • 忽略具有四个字母的扩展都在延伸的第四封信是不是
  • 忽略具有五个字母的扩展或更多的东西

限制:

  • 这也将阻塞的.java为此目录
  • 遗憾的是我没能忽略文件不带扩展名,因为这也将阻止目录。


Answer 6:

好了,我不知道如果我错过了什么,但你可以使用任何你想要的方式:

svn propset svn:ignore "*~" .

您可以查看:

svn propget svn:ignore .

另一种方法是使用别名/脚本提交时,可以做复杂的分析。

最好的解决办法,我觉得用我自己是完全的源文件的版本树从构建树分开。 这样你就不会产生在你的版本目录树的事情。 然后,你只能使用svn:ignore无视文本编辑器,例如产生简单的假象。

编辑:

对不起我的第一个解决方案的错误,我误解你的帖子。 其他两个途径似乎相关,即使不是你想要什么?



文章来源: Using svn:ignore to ignore everything but certain files
标签: svn svnignore