2011-08-23 23 views
8

Bir çözüm bulmak için bana uzun bir zaman aldı ve hala bir tane almak için başarısız bir sorunla karşılaştı. Django barındırma CVS üzerinden web sitemi dağıtmak için çalışırken bir salt okunur bir veritabanı 'yazmak için girişimi:Git dosya izni nasıl korunur?

Ben sorun 'DatabaseError' dir.

O 777 için 755 dan benim dosyaların izin değişecek git gibi görünüyor Ama projemi taahhüt zaman, bu değişiklik kalıcı olur. Ancak, hala veritabanına bir şeyler yazmam gerekiyor (sqlite veritabanı).

herkes her taahhüt adresinde izin modunu korumak için benim budala yapılandırmak için bir öneri var mı? Kısacası

cevap

11

, yapamazsın. artık yılında

, otomatik bunu hangi etckeeper gibi projelerin var, yoksa izinlerini (muhtemelen hangi yapardım nasıl) çözecektir küçük kanca komut dosyası yazabilirsiniz. Bir şey bu taahhüt Örneğin

: To

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

, örneğin scripts/fix_permissions/ ardından sunucu üzerinde .git/hooks/post-receive içine simlinking bir post-receive kanca olarak çalıştırın.

+0

Sunucunuzun zaten bir sunucuda çalıştığı dosyaları güncelleştirmek için bir posta alma çanı kullanmanız gerekiyorsa, bir sunucudaki bir Git deposundan doğrudan bir şey çalıştırmanın genelde bir Kötü Fikir olduğunu unutmayın. – Amber

+0

Bu çok doğru. Kanepelerimi repoda tutmaktan hoşlanıyorum, bu yüzden her şeyle birlikte yorumlanıyorlar, ama bu, tüm geliştiricilerin sunuculara her zaman erişebildiği küçük projelerde çalışıyorum çünkü… Ama kesinlikle bir potansiyel güvenlik açığı açıyor. –

İlgili konular