Obtendo o filtro git smudge para funcionar no Ubuntu

4

Estou tentando fazer com que um filtro git smudge funcione no Ubuntu, conforme descrito nesta resposta do stackoverflow: link

O objetivo é converter espaços em guias ao finalizar a compra.

No meu .gitconfig eu tenho esta entrada:

[filter "tabspace"]
    smudge = unexpand --tabs=4 --first-only
    clean = expand --tabs=4 --initial

Como exemplo, considere o repositório do painel lxqt que usa espaços para recuo: link

Em lxqt-panel/.git/info/attributes , ativei o filtro de espaço de tabela:

*.cpp   filter=tabspace
*.h     filter=tabspace

De acordo com o Stackoverflow Responda a várias fontes on-line, a execução de git checkout HEAD -- ** agora deve converter todos os espaços em guias. No entanto, no meu caso, o git parece ignorar essas configurações completamente; A execução de unexpand funciona manualmente.

O que estou perdendo aqui?

Estou usando o git 2.11.0 no Ubuntu 16.04.

    
por Philipp Ludwig 15.05.2017 / 19:40

1 resposta

2

git checkout HEAD -- ** só irá converter arquivos que tenham alterações. Arquivos inalterados não serão tocados, é por isso que nada é substituído neles. Para forçar a atualização de todos os arquivos, você pode removê-los e redefinir. Mas certifique-se de que você não tenha alterações não confirmadas, porque elas serão perdidas. Por exemplo, você poderia fazer isso:

git rm -r .
git reset --hard

Ou, se preferir, você pode substituir apenas todos os arquivos .h e .cpp por:

rm **/*.{h,cpp}
git checkout .
    
por janos 19.05.2017 / 19:24

Tags