On 9/10/16, Junio C Hamano <gitster@xxxxxxxxx> wrote: > The clean and smudge operations should look _only_ at the contents > they are filtering, and nothing else, and the clean/smudge filtering > mechanism is designed to support that use case. It is not designed > to do things like embedding the name of the branch that is being > checked out into the result. Ok, I think I get it. It was actually my original problem with smudge filters because I wanted them to be run after *every* checkout even if file contents stayed the same (hence the subject). Now Jakub suggested post-checkout hook in conjunction with only clean filter for my problem of managing dotfiles but I think I don't fully get it. The problem is that in the scenario presented in my last e-mail clean filter is run in the situation which doesn't like a checkin to me. Is `git checkout <PATH>' doing a *checkin*" under the hood so that the clean filter is called? What does actually `checkin' mean in Git? I thought that checkin it's the same as committing a file into the repository. -- <wempwer@xxxxxxxxx>