हम एक केंद्रीय रेपो (गिटोसिस का उपयोग करके) के साथ गिट का उपयोग कर रहे हैं। जब भी केंद्रीय रिपो में परिवर्तनों को धक्का दिया जाता है, और गिट रेपो में दस्तावेज़ फ़ोल्डर से दस्तावेज़ उत्पन्न करने के लिए मैंने dev मेलिंग सूची में एक ईमेल उत्पन्न करने के लिए एक पोस्ट-प्राप्त हुक बनाया है।गिट पोस्ट-प्राप्त हुक काम नहीं कर रहा
इसलिए, ~ गिट/मुझे एक निर्देशिका मिली है, हम इसे 'ए' कहते हैं जिसमें गिट रेपो का क्लोन होता है। पोस्ट-प्राप्त हुक इस तरह दिखता है:
#!/bin/bash
cd ~git/repositories/a.git
. ~git/post-receive-email &> /dev/null
(cd ~git/a && git pull &> ~git/pull_log.log && php ~git/a/scripts/generate_markdown_documentation.php &> ~git/doc_log.log)
ईमेल स्क्रिप्ट काम कर रही है, लेकिन दस्तावेज़ीकरण पीढ़ी नहीं है। pull_log.log की सामग्री है:
fatal: Not a git repository: '.'
कौन सा मुझे लगता है कि यह ऊपर स्क्रिप्ट की लाइन 5 में सही निर्देशिका को नहीं बदल रहा है बनाता है। क्या मै गलत हु? में इससे कैसे चला सकता हूँ?
संपादित करें: मैंने प्रतिक्रियाओं में सुझाए गए पोस्ट-प्राप्त हुक को अपडेट किया है। स्क्रिप्ट अब है:
#!/bin/bash
function die {
echo "$*" >&2; exit 1
}
function checkgit {
[ -d "$1/.git" ] || die "$1 could not possibly be a git repo; $1/.git is not a dir"
}
cd ~git/repositories/a.git
. ~git/post-receive-email &> /dev/null
(set -x
checkgit ~git/a
cd ~git/a
checkgit .
pwd
git pull
php ~git/a/scripts/generate_markdown_documentation.php)
और मैं Git धक्का से निम्न आउटपुट प्राप्त:
+ checkgit /var/git/a
+ '[' -d /var/git/a/.git ']'
+ cd /var/git/a
+ checkgit .
+ '[' -d ./.git ']'
+ pwd
/var/git/a
+ git pull
fatal: Not a git repository: '.'
+ php /var/git/a/scripts/generate_markdown_documentation.php
किसी भी और अधिक मदद की?
ओह, और यदि मैं स्वयं स्क्रिप्ट चलाने के लिए, यह
समस्या की खोज की (कह हुक/उत्तर प्राप्त द्वारा मैं इसे चलाने) serverfault के लिए काम करता है, धन्यवाद - मूल रूप से, वातावरण चर GIT_DIR
और GIT_WORK_TREE
सेट कर रहे हैं जब हुक चलता है, और ये गिट को प्रतिकूल रूप से खींचते हैं। चर को अनसेट करने से समस्या ठीक हो जाती है।
'git pull 'को' pwd' में बदलें और देखें कि लॉग में क्या दिखाई देता है। –
ओह! बुरा। समस्या को ट्रैक करने और इसे मारने के लिए +1! –
आपको pull_log.log फ़ाइल कैसे मिली? मुझे नहीं पता कि लॉग कहां संग्रहीत हैं ... – munmunbb