Je rencontre des problèmes avec un dépôt git qui a des fichiers en mode lecture seule (chmod 0440).Git ne peut pas extraire les fichiers avec les autorisations readonly
Parfois, l'un de ces fichiers est modifié sur une autre branche; et quand vous essayez de la caisse de cette branche, git ne parvient pas à mettre à jour ce fichier avec un warning: unable to unlink path/to/the/file: Permission denied
Le problème est que ces fichiers doivent être en mode lecture seule, parce que le cadre utilisé au-delà de ces fichiers jette des messages d'avertissement lourds lorsque ces fichiers sont inscriptibles, et encore plus problématiques, chaque fois que nous (ré) installons le framework dans notre processus d'intégration continue, le framework met à jour ces fichiers pour être en mode lecture seule.
J'ai essayé d'utiliser des crochets git pour chmod automatiquement ces fichiers à 0664 avant de vérifier tout fichier/branche, puis les renvoyer à 0440, mais je ne suis pas sûr que ces crochets existent. Une solution indésirable serait de chmod moi-même ces fichiers à 0664 chaque fois que je sais qu'ils pourraient changer avec git, puis chmod retour à 0440 pour éviter de pousser les fichiers inscriptibles dans un environnement prod, mais cela conduirait à échouer à coup sûr . Une autre solution consisterait à les valider en mode 0664 et à mettre à jour notre processus d'intégration continue pour reconfigurer ces fichiers en 0664 après que le framework a été (ré) installé et ignorer totalement les avertissements; tout en gardant le chmod à 0440 pour l'environnement prod.
Que pensez-vous de ce problème et quelle est la meilleure solution pour le réparer?
mais .... comment pensez-vous écraser un fichier en lecture seule? Je ne suis pas sûr de ce que vous attendez de GIT à faire ici. Rendre le fichier accessible en écriture ou ne pas le mettre à jour. Il me semble que votre véritable problème est * parce que le cadre utilisé au-delà de ces fichiers envoie de lourds messages d'avertissement lorsque ces fichiers sont inscriptibles *. Cela semble impliquer que vous ne devriez pas du tout vérifier ces fichiers dans GIT et que vous ne devriez certainement pas les mettre à jour – Liam