Como o git consegue saber que o caminho de uma pasta mudou?
(kwoncheol.me)- Antes de começar
-
o git distingue arquivos por valores de hash
-
os quatro tipos de objeto (object) do git
-
mudar o caminho de uma pasta e mudar o nome de um arquivo são a mesma operação
-
Reorganização da estrutura de pastas, e o git surpreendentemente inteligente
-
A inferência do git
-
O processo de inferência de
renamedeedit-renamedno git
Etapa 1: seleção de candidatos
Etapa 2: comparação de hash dos arquivos (encontrar renamed)
Etapa 3: comparação de similaridade entre arquivos (encontrar edit-renamed)
→ Não é uma operação cara demais?
-
A história dos perrengues de bastidores
-
Encerrando
1 comentários
Como observação à parte, parece que o Git e o GitHub têm formas diferentes de detectar caminhos de arquivos.
No Git, claramente foi reconhecido como
rename, mas quando abro um PR no GitHub ele aparece como se um arquivo tivesse sido apagado e outro tivesse sido adicionado, então muitas vezes não mostra o diff e isso é bem inconveniente...