Comment déterminer les fichiers qui sont soumis à un filtre par gitattributes lorsque le filtre est exécuté?

StackOverflow https://stackoverflow.com/questions/2873124

  •  03-10-2019
  •  | 
  •  

Question

Je tas de scripts Ruby dans un dépôt git et il semble être vraiment difficile de faire respecter les gens à écrire du code correctement indenté.

J'ai aussi un petit script Ruby que les formats de code standard spécifique et maintenant je voudrais courir que comme un script de filtre de sorte que indésirable wont s'engage dans le référentiel.

echo "*.rb filter=rubyfilter" > .gitattributes
echo "[filter \"rubyfilter\"]" >> .git/config
echo "    clean = /home/rasjani/bin/rbeauty" >> .git/config
echo "    smudge = /home/rasjani/bin/rbeauty" >> .git/config

fait le côté git truc sale, mais le script Ruby doit ensuite traiter les fichiers concernés:

comment / où est-ce que je regarde les contre?

Était-ce utile?

La solution

Comme décrit dans le GitPro Livre

  

Git applique les paramètres uniquement pour un sous-répertoire ou sous-ensemble de fichiers. Ces paramètres spécifiques de chemin sont appelés attributs Git et sont définis soit dans un fichier .gitattributes dans l'un de vos répertoires

Le git attributes homme mentionne:

  
      
  • Au moment du départ, lorsque la commande de bavure est spécifiée, la commande est alimenté l'objet blob à partir de son entrée standard, et on utilise la sortie standard pour mettre à jour le fichier de worktree.
  •   
  • De même, la commande propre est utilisé pour convertir le contenu du fichier worktree sur checkin.
  •   

text alt

votre script traitera chaque fichiers *.rb (dans le répertoire et les sous-répertoires où le fichier .gitattributes est situé) à la caisse et valider.

Voir cette SO question un exemple concret.
Vous pouvez tester votre configuration avec:

git checkout --force

Note: comme mentionné dans cette question SO , les scripts smudge et clean ne peuvent modifier le contenu d'un fichier, sans savoir quel fichier exact ils sont en train de traiter.

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