0

我现在正在尝试将忽略文件列表设置为 svn。我确实尝试过这种方式。

svn propedit svn:ignore 。 
。项目
.c项目
标签
cscope.文件
cscope.out
SICR2000_CPU_Ver0.04.25.tgz

使用这些设置,我的 svn 状态会打印出来,如下所示。

svn状态
米。
M.c项目
〜标签
项目

看,我的忽略设置中的前 3 个文件没有被忽略!

。项目
.c项目
标签

我想知道为什么当我svn status时这三个文件没有被忽略。如何将这三个文件设置为忽略?

旅者

4

1 回答 1

2

您不能忽略存储库中已存在的文件。

忽略主要用于创建不想意外放入存储库的文件时。例如,在 C中,您*.o从. 如果我将工作目录设置为忽略这些文件,版本控制系统将不会报告它们。*.c*.class*.java

想象一下这个设置:

$ svn st
M  foo.txt
M  bar.txt
?  ignore.me

该文件ignore.me被报告。现在,我将忽略它:

$ svn ps svn:ignore 'ignore.me' .
$ svn st
 M .
M  foo.txt
M  bar.txt

请注意,ignore.me当我获得状态时,它不再显示。但是,我可以添加它:

$ svn add ignore.me
 M .
M  foo.txt
M  bar.txt
A  ignore.me

请注意,它显示在我的状态报告中。那是因为它现在是存储库的一部分(或者一旦我提交)。我们使用 Java,我们所有的构建内容都放在一个名为target. 我们还有一个build.properties文件可以由开发人员设置以更改构建的工作方式。但是,这是一个针对每个开发人员使用的文件,不应将其签入我们的存储库。

因此,我将build.properties和添加target到我的svn:ignore. 有时我会从项目中删除.projectand .classpath,然后也删除ignore那些。这些是 Eclipse 文件,应该在每个开发人员的基础上进行设置。

如果您需要阻止人们签入对特定文件的更改,甚至添加特定文件(这不仅是忽略,而且是防止任何人故意添加文件),您需要一个pre-commit 钩子。这将有助于强制执行您的设置并防止用户进行他们不应该进行的更改。

于 2013-12-25T16:15:59.487 回答