SVN is for versioning. Which means it keeps *every* file you check in *forever*. Even if you update a file, the old version is retained. This allows you to rollback to the old version or do a diff against it.
So *do not* check in things (other than source code and in-progress publications) that change often, can be auto-generated, are large, or number in the hundreds.
For code, DO NOT check in:
- IDE specific files: .idea, .project, .classpath, .settings, etc.
- Anything that is auto generated while compiling: .class, .jar, target/, etc.
- Any external jars should be auto-downloaded using maven, etc.
For pubs, DO NOT check in:
- Anything that is auto generated while compiling: .aux, .log, .bbl, .out
- Standard .cls files (e.g. IEEE, ACM, LNCS, which are available under /pubs/templates in SVN)
- External latex packages that can be downloaded from CTAN
In general, DO NOT check in:
- Large files/datasets > ~10MB in size (zip it up to <~10MB, put it on /scratch on rigel and link to it, or put a link to a public URL)
- Large number of files (100’s) – zip them up and check in a single file, or download them from external URLs
- Files that are changed often by automated code like IDEs, compilers, etc. (i.e. not you directly)
- Files with special characters other than underscore ‘_’, dash ‘-‘ and dot ‘.’ since they do not work across OSes, and breaks SVN. Particularly, DO NOT use space, *, \, /, |, :, >, <, “, ‘, ?.
- File names that are case sensitive, e.g. two files with same name but different character cases.