Re: renormalize histroy with smudge/clean-filter, again
- From
- Josef Wolf <jw@raven.inka.de>
- Date
- Feb 11, 2025, 23:57 UTC
- Message-ID
- <20250211235707.GQ30202@raven.inka.de>
- In-Reply-To
- <20250205214726.GA30202@raven.inka.de>
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-helperSo 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-0113Still 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@raven.inka.de