I am now trying to set ignore file list to svn. I did try this way.
svn propedit svn:ignore .
.project .cproject tags cscope.files cscope.out SICR2000_CPU_Ver0.04.25.tgz
And with these settings, my svn status prints out like shown below.
svn status
M . M .cproject ~ tags M .project
Look, first 3 files from my ignore settings are not ignored!
.project .cproject tags
I'd like to know why these three files are not ignored when I svn status. How can I set these three files ignored?
Journeyer
You can't ignore files that already exist in the repository.
Ignoring is mainly used when you create files that you don't want to accidentally put into your repository. For example, in C, you create
*.o
files from*.c
, or in Java, you create*.class
files from*.java
. If I set my work directory up to ignore these file, the version control system won't report on them.Imagine this setup:
The file
ignore.me
is reported. Now, I'm going to ignore it:Notice that
ignore.me
is no longer showing up when I take a status. However, I can add it:Notice it is showing up in my status report. That's because it's now part of the repository (or will be once I do a commit). We use Java and all of our build stuff goes under a directory called
target
. We also have abuild.properties
file that can be setup by the developers to change the way the build works. However, this is a file that's used on a per-developer basis, and should not be checked into our repository.Therefore, I add both
build.properties
andtarget
to mysvn:ignore
. Sometimes I will remove the.project
and.classpath
from a project and thenignore
those too. These are Eclipse files that should be setup on a per developer basis.If you need to prevent people from checking in changes to particular files, or even to add particular files (that is not only ignore, but prevent anyone from purposefully adding the files), you need a pre-commit hook. This will help enforce your setup and prevent users from making changes they shouldn't make.