我有一个文件不想删除,但不属于repo。我不想为它提交一个忽略属性,以免影响其他用户,如果他们的系统中有它,他们可能不希望它被忽略。我不想只是不提交忽略,因为这只会让我很烦恼,因为我不得不特意忽略忽略道具。
我在配置文件中使用了全局忽略,我可以按名称忽略它,即:file.txt
,但如果有一天我有另一个名为file.txt的文件不想被忽略,那该怎么办?所以我试着给它输入一个路径名,比如:folder/file.txt
,因为我在windows folderfile.txt
上,我想可能有某种正则表达式发生在folder\file.txt
上
这些似乎都不起作用,即使我一直使用斜杠、反斜杠或转义反斜杠来驱动字母c:repofolderfile.txt
。
那么,有没有任何方法可以在不使用属性的情况下专门引用该文件上的忽略?
此外,文档将这些模式称为"空白分隔的globs",glob在这个意义上对我来说是一个新术语,有人能解释一下这个定义吗?考虑到glob有许多非IT定义,谷歌不是我的朋友。
让我们一次看一件事:
忽略某些内容只是一种方法,可以帮助您避免意外地将不想要的内容放入存储库。它在本质上可以是全局,也可以仅是特定目录的本地目录。
忽略Subversion中的某些内容会做两件事:
- 当您执行
svn status
时,它不会列出 - 如果您执行
svn add *
,则不会添加它
事实上,忽略只适用于存储库中的文件,而不适用于。您不能忽略已添加到存储库中的文件。
你为什么要在全球范围内忽略一些东西
假设我做C开发。我取后缀为*.c的文件,然后将它们编译为后缀为*.o的文件。我不希望这些*.o文件在我的目录中,所以我设置了全局忽略。
为什么只想忽略一个目录中的内容
假设我构建并执行一个程序,它会在我的目录中创建一个名为output.txt
的文件。我不想将其添加到我的存储库中,所以我将该目录中的svn:ignore
设置为忽略该文件。
我用Maven构建东西,Maven创建了一个目标目录。在我所有的Maven项目中,我告诉Subversion忽略的目标空格分隔的globs是什么意思? globing是一种廉价而简单的类似正则表达式的语法形式。你可能一直在用它。它主要用于命令行。这是使用globbing: 因此,所有空格分隔的glob均值都是一堆glob[/em>表达式,无论它在哪里,你都想忽略它。你用空格而不是逗号分隔它们: 右: 错误: 还有一件事,忽略(无论是全局的还是 那么,回到你的问题上来。如果每个人都有这个文件,但没有人应该将它添加到Subversion,那么应该在该目录中忽略它。所要做的就是防止有人意外地将其添加到Subversion中。它不会从他们的视野中隐藏它。 如果事实上,最后,你可以忽略不计。您可以通过简单地指定文件来提交和添加文件,即使您之前说过要忽略它们。 如果你真的想确保你不会意外地提交不应该提交的文件,你应该使用我的预提交触发器。这允许您指定不应该提交的内容和位置。可以使用globbing语法或正则表达式语法。例如: 第一个是通过glob设置的。第二个是通过正则表达式设置的。 希望这能回答您的问题。$ ls *.txt
global-ignores="*.o *~ *.class"
global-ignores="*.o, *~, *.class"
svn:ignore
)中的globs(即文件规范)不能有目录前缀。您不能全局忽略目录,但可以svn:ignore
一个目录。例如,我使用Maven,它在名为target的目录下构建所有内容。我可以在目标目录上设置一个svn:ignore
。[file Don't allow people to add foo files to the bar directory]
file=**/bar/foo.*
access=no-add
users=@ALL
[file Don't allow people to add bar files to the foo directory]
match=/bar/foo.*$
access=no-add
users=@ALL