Question

Je l'ai utilisé un script Perl pour modifier tous les caractères de tabulation dans un dépôt git php et les a tout changé 4 espaces.

$ find -iname \*.php -exec perl -pi -e "s/\t/    /g" {} \

Je peux intégrer ce changement avec git commit, mais il me marquer comme l'auteur de toutes les lignes modifiées à l'intérieur git blame après ce commit est fait.

Est-il possible de commettre ce changement massif qui ne me marque pas comme l'auteur des lignes modifiées, mais conserve l'auteur original? Cela fait beaucoup de l'histoire, nous ne voulons pas vraiment perdre dans notre projet.

Notre but à remplacer les onglets avec 4 espaces ne sont pas aux choses de faire apparaître différentes dans le blâme git, mais de suivre les normes de codage PEAR appropriées. Par exemple. pas de pattes, utilisent 4 espaces pour l'indentation.

Était-ce utile?

La solution

Merci à wnoise sur git: style de changement (espace) sans changer la propriété / le blâme? , je suis venu avec cette option pour exécuter un filtre arbitraire sur l'histoire git, donc en utilisant cela, vous pouvez réécrire l'histoire pour la faire ressembler à offenser ou d'autres espaces questions ont été commises jamais, laissant les auteurs originaux de tact mais nettoyé votre code jusqu'à: git filter-branch --tree-filter 'git diff-tree --name-only --diff-filter=AM -r --no-commit-id $GIT_COMMIT | php cleanup.php' HEAD

Autres conseils

Il est pas la responsabilité du commit pour décider comment traiter, mais la espacements responsabilité du blâme commande car il est blâme qui analyse les différences entre les versions pour obtenir l'auteur de chaque ligne. Donc, la recherche d'une option d'ignorer les espaces dans blâme :

L'option -w est définie comme suit: « Ignorer les espaces lorsque l'on compare la version du parent et l'enfant est de trouver où les lignes venaient. » http://kernel.org/pub/software/scm/git /docs/git-blame.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top