Still struggling with my filter problem. Here is what I do: - Set up a clean filter which enforces CRLF (yes, for this specific use case I want CRLF even on linux) - Smudge filter does not modify the file at all - Set up git to fail when filter fails, so I can double-check that the filter is actually runnning: $ grep -A3 filter..etsfile ~/.gitconfig [filter "etsfile"] required = true clean = ets-utils -c smudge = ets-utils -s %f - Specify file as non-text and install the filter: $ grep etsfile .gitattributes */P -text filter=etsfile $ git commit .gitattributes - Check that git gets attributes as I want them: $ git --attr-source=$(git rev-parse HEAD) check-attr -a P-0113/P P-0113/P: text: unset P-0113/P: filter: etsfile $ git ls-files --eol P-0113/P i/lf w/ attr/-text P-0113/P - Create helper for renormalization $ cat renormalization-helper #! /bin/sh -e git add --renormalize . git diff --quiet --cached || \ git commit --amend --no-edit - Run the renormalization for the linear history: $ git --attr-source=$(git rev-parse HEAD) \ rebase --root -X renormalize \ -x $(dirname $0)/renormalize-helper So at this point, I'd expect the falie to have CRLF line endings. But it doesn't, so I do: $ rm -rf P-0113 git checkout --attr-source=$(git rev-parse HEAD) P-0113 Still no CRLF, so I look at what is stored by git: $ git --attr-source=$(git rev-parse HEAD) show 873a9b:P-0113/P |less -U Again, no CRLF. So I check all revisions in the history. Resut: no revision has CRLF. So the renormalization process does not work for me at all. Any ideas? -- Josef Wolf jw@xxxxxxxxxxxxx