2011-03-26 8 views
5

मैं अपने वेब आवेदन अद्यतन करने के लिए निम्नलिखित Git हुक बनाया है जब नए परिवर्तन भंडार करने के लिए धकेल दिया जाता हैगलत फ़ाइल अनुमति जब एक हुक

#!/bin/sh 
#Update the server version to HEAD 

echo "Updating webapp..." 
unset $(git rev-parse --local-env-vars) 
(cd /var/www/webapp && git pull -q) 

हालांकि, अगर मैं नई फ़ाइलें जोड़ वे मिल में Git पुल का उपयोग करते हुए गलत अनुमतियां वे केवल मालिक द्वारा पठनीय हैं, न कि समूह द्वारा या अन्य उपयोगकर्ताओं द्वारा। लेकिन मुझे उन्हें हर किसी के द्वारा पठनीय होने की जरूरत है। स्थानीय रूप से उनके पास सही अनुमति बिट्स हैं। और जब भी मैं खोल से मैन्युअल रूप से हुक चलाता हूं, यह सही तरीके से काम करता है। यह केवल तब काम नहीं करता जब स्क्रिप्ट को हुक के रूप में बुलाया जाता है।

कोई विचार यह कैसे ठीक करें?

पुनश्च: मैं Git उपयोग कर रहा हूँ 1.7

उत्तर

8

Git नहीं दुकान अनुमतियाँ करता है, के अलावा निष्पादन बिट से। इसलिए, चेकआउट पर, फ़ाइलों को डिफ़ॉल्ट अनुमतियों के साथ बनाया जाता है, जो आपके umask पर निर्भर करता है।

मुझे लगता है, जब आप मैन्युअल रूप से हुक को कॉल कर रहे हैं, तो आपके पास अधिक उदार उमास्क सेट है। आप umask को umask खोल कमांड के साथ ओवरराइड कर सकते हैं। आपके उद्देश्यों के लिए, 0022 शायद ठीक है।

+1

गिट पुल पूरी तरह से काम करने से ठीक पहले हमारी शेल स्क्रिप्ट में 'उमास्क 0022' सेट करना। धन्यवाद! – joachim

+0

धन्यवाद! पूरी तरह से काम किया। – nathancahill

संबंधित मुद्दे