13 points par xguru 2021-08-24 | 1 commentaires | Partager sur WhatsApp
  • Avant de commencer
  1. git distingue les fichiers par leur valeur de hachage

  2. Les quatre types d’objets de git

  3. Changer le chemin d’un dossier et changer le nom d’un fichier, c’est la même opération

  • Réorganisation de l’arborescence, et git est plutôt malin

  • L’inférence de git

  • Le processus d’inférence de git pour renamed et edit-renamed

Étape 1 : sélection des candidats

Étape 2 : comparaison des hash de fichiers (trouver renamed)

Étape 3 : comparaison de similarité entre fichiers (trouver edit-renamed)

→ N’est-ce pas un calcul trop coûteux ?

  • L’histoire des galères en coulisses

  • Conclusion

1 commentaires

 
kbumsik 2021-08-25

Petite parenthèse, mais j’ai l’impression que Git et GitHub n’utilisent pas tout à fait la même méthode pour détecter les chemins de fichiers.

Git l’a pourtant clairement reconnu comme un renommage, mais quand on ouvre une PR sur GitHub, le fichier apparaît comme supprimé puis un autre fichier comme ajouté, ce qui empêche d’avoir un diff et devient souvent assez pénible...