With SugarCRM 6.4 the `cache/upload` directory moved to `upload` and
`upload_backup`. These directories can safely be ignored.
Additionally the `cache` directory is now ignored completely because it
leads to the behaviour to use the git repository as a kind of backup
tool if several parts of it are included. Furthermore the directory
structure beneath `cache` is victim of enduring changes by the
developers.
I did also some code cleanup regarding the path names e.g. adding a `/`
before most file and directory names.
Perhaps this is a little pedantic, but without the initial / all
such matches within the repository get ignored, and without the
trailing slash files as well as directories of that name get ignored.
e.g. Specifying `tmp` and `test/tmp` without slashes is redundant, as
`tmp` already ignores `test/tmp`, as well as every other `tmp` and
`tmp/`.
Unity only generates project files in the top-level directory.
However, the current .gitignore will ignore all project files even
if they were not generated by Unity.
It is sometimes necessary to include non-Unity project files for
level editors or other utility projects that have been added to the
repository.
Libraries/Projects using [Composer](http://getcomposer.org) for dependency management should include a `.gitignore` file like this.
It ignores the vendor folder which Composer uses for dependencies, classmaps and others. Composer keeps git repositories in this folder so it is cleaner if it is ignored.
[`composer.lock` should not be ignored.](http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file)
> Commit your application's composer.lock (along with composer.json) into version control.
> For your library you may commit the composer.lock file if you want to. This can help your team to always test against the same dependency versions. However, this lock file will not have any effect on other projects that depend on it. It only has an effect on the main project.