Re: How to simulate a real checkout to test a new smudge filter?
- From
Torsten Bögershausen <tboegi@web.de>
- Date
- Sep 6, 2016, 19:48 UTC
- Message-ID
- <b71adc54-2ae6-ef8e-1dca-0883cd617e6e@web.de>
- In-Reply-To
- <CAKmQUfa_U-g6vC+SjbQSicEUwO+WofNfzezEEwikeOAeL31W5g@mail.gmail.com>
On 06.09.16 19:47, john smith wrote:
Show 17 quoted lines
> I am looking for a way to force smudge filter to run by simulating a > real life checkout. Let's say I just created a new branch and did not > modify any files but want to test my new smudge filter. According to > some answers such as > https://stackoverflow.com/questions/22909620/git-smudge-clean-filter-between-branches > and > https://stackoverflow.com/questions/21652242/git-re-checkout-files-after-creating-smudge-filter > it should be possible by running: > > git checkout HEAD -- > > but in doesn't work with git 2.9.0. Method suggested in accepted > answer here > https://stackoverflow.com/questions/17223527/how-do-i-force-git-to-checkout-the-master-branch-and-remove-carriage-returns-aft > works but I don't like because it seems fragile. Is there a safe way > to do what I want to do in Git still today? >
It depends what you mean with "safe way".
git checkout, git checkout -f or other combinations will only
overwrite/rewrite the files in the working tree, if, and only if,
git comes to the conclusion that "git add" will do something,
like replace a blob for a file in the index.
(And by running "rm .git/index git will evaluate the "clean" filters,
and the CRLF->LF conversion).
If you want to test a smudge filter, simply remove the file:
mv file /tmp && git checkout file