I'm using filters to mangle files during checkout like described here.
Now the problem is that filter definition is only stored in my local configuration file:
$ cat .git/config
smudge = /home/.../expand_date
clean = perl -pe \"s/\\\\\\$Date[^\\\\\\$]*\\\\\\$/\\\\\\$Date\\\\\\$/\"
There are 3 supported scopes of
--system, --global, --local. You can also create a custom configuration file, and include it in one of the supported files.
For your needs custom - is the right choice. Instead of writing your filter in
.git/config you should save it in
.gitconfig file in your repository root:
your-repo/ │ ├── .git/ │ ├── config │ ├── .gitconfig │
.gitconfig with your filter and commit the changes. Then your colleagues will always keep it updated -- but they will have to include it manually. It is not possible to automatically include your custom configuration file through git alone, because it creates a security vulnerability.
To apply this configuration for a single repository, each user will need to run the following command in
git config --local include.path ../.gitconfig
Be careful not to store personal data in the custom
user.*, keep those in your global