J'utilise cygwin sur Windows 7 Professional.
Lorsque je crée de nouveaux fichiers tels que MyNewFile.java, il semble que l'autorisation par défaut soit définie sur 755. Ce n'est pas ce que je veux. Je veux que ce soit 644 pour les fichiers normaux.
C'est très ennuyeux de devoir changer les autorisations chaque fois que je crée de nouveaux fichiers en dehors du terminal cygwin (le cp du terminal cygwin fonctionne bien et conserve les autorisations existantes comme prévu, même en créant de nouveaux fichiers à l'intérieur des œuvres cygwin).
Alternativement, existe-t-il un moyen dans git de changer automatiquement les fichiers * .myextension pour toujours avoir une autorisation spécifique?
Sinon, existe-t-il un moyen de récursivement chmod 644 tous les fichiers * .myextension récursivement sous un dossier (sans affecter les autorisations de dossier!)?
find ./ …
;find . …
fonctionne très bien, et si vous avez l'habitude de taperfind ./
tout le temps, un de ces jours vous allez taperfind / -exec rm …
(ou, de manière équivalentefind /. …
) par accident.Réponses:
Vous devez modifier la sécurité du dossier sous Windows dans lequel cygwin écrit afin qu'il corresponde à votre configuration cygwin.
Par exemple, avec la sécurité par défaut, j'obtiens:
Après avoir changé la sécurité du dossier dans Windows, j'obtiens:
J'ai trouvé que l'entrée de sécurité Windows "Tout le monde" correspond à "autre" dans la liste "groupe d'utilisateurs autre" de la commande ls. Supprimez "Lire et exécuter", ne laissant que Lecture pour que celui-ci corresponde. L'entrée de sécurité spéciale CREATOR GROUP correspondait à la partie "groupe" pour moi. Lorsque j'ai désactivé "Lire et exécuter" et laissé uniquement la lecture activée, toute la liste des répertoires correspondait désormais à la sécurité du fichier créé par cygwin.
la source
Ce que vous essayez de réaliser ici n'est pas clair, mais si vous essayez de faire en sorte que votre cygwin git ignore les autorisations, procédez comme suit:
$ git config --local core.filemode false
la source