2011-08-23 21 views
8

Napotkałem problem, który zabrał mi dużo czasu, aby znaleźć rozwiązanie i nadal go nie dostaję.Jak zachować uprawnienia do pliku w git?

Problem polegał na tym, że "DatabaseError:" próbowałem napisać bazę danych tylko do odczytu ", gdy próbowałem wdrożyć moją witrynę poprzez git do hostingu Django.

Wygląda na to, że git zmieni uprawnienia moich plików, z 777 na 755. Ale zawsze, gdy zatwierdzę mój projekt, ta zmiana będzie trwać. Jednak nadal muszę napisać coś do mojej bazy danych (baza danych sqlite).

Czy ktoś ma sugestię, aby skonfigurować mój git, aby zachować tryb uprawnień przy każdym zatwierdzeniu?

Odpowiedz

11

Krótko mówiąc, nie można.

W dłuższej perspektywie są takie projekty jak etckeeper, które mogą to zrobić automatycznie, lub możesz napisać mały skrypt przechwytujący, który naprawi uprawnienia (prawdopodobnie to zrobię).

Na przykład, jeśli popełnić coś to:

#!/bin/sh 
chmod -R XXX file_or_directory/ 

do np, scripts/fix_permissions/, a następnie uruchomić go jako hak post-receive przez simlinking go do .git/hooks/post-receive na serwerze.

+0

Należy pamiętać, że jeśli powinieneś prawdopodobnie używać haka po otrzymaniu, aby zaktualizować pliki, z których Twój serwer jest uruchamiany, ponieważ uruchomienie czegoś bezpośrednio z repozytorium Git na serwerze jest zazwyczaj złym pomysłem. – Amber

+0

To prawda. Lubię przechowywać swoje haczyki w repozytorium, więc są one wersjonowane razem ze wszystkim innym, ale to dlatego, że pracuję nad małymi projektami, w których wszyscy programiści mają dostęp root do serwerów ... Ale to na pewno otwiera potencjalną lukę bezpieczeństwa. –

Powiązane problemy