संगीतकार द्वारा स्थापित एक Magento के मॉड्यूल पर गिट-इग्नोर साइमलिंक कैसे करें


11

मैं मॉड्यूल का उपयोग कर स्थापित करता हूं composer.phar

यह publichtml/app/code/community(उदाहरण के लिए) एक लक्ष्य के साथ सहानुभूति फ़ाइलें बनाता है vendor/themodule...

मेरे में .gitignoreमैंने विक्रेता निर्देशिका को बाहर कर दिया - लेकिन लिंक निश्चित रूप से अभी भी समाप्त होगा।

क्या उन लिंक को स्वचालित रूप से बाहर करने का एक आसान तरीका है? (.gitignore को मैन्युअल रूप से सब कुछ जोड़ने के अलावा)

मुझे कहना है कि मेरे पास कुछ require-devमॉड्यूल हैं जो अंतिम सर्वर पर समाप्त नहीं होने चाहिए - इसलिए उन लिंक होने से कम से कम इतना अच्छा नहीं होगा।


1
क्या यह मॉडमैन पर भी लागू होगा?
16:11

मॉडमैन के साथ आप आमतौर पर प्रत्येक एक्सटेंशन के लिए गिट सबमॉडल्स का उपयोग करते हैं और बस रिपॉजिटरी के लिए सीलिंक जोड़ते हैं। उन्हें वहां से बाहर करने की कोई आवश्यकता नहीं है, इसके विपरीत, यह ज्यादातर मॉडेम परिनियोजित परिदृश्य में समझ में नहीं आता है।
विनय

1
@philwinkle मैंने हाल ही में सुरक्षा कारणों (जैसे आसानी से संशोधित फ़ाइलों का पता लगाने) के लिए अलग-अलग रेपो में मैगेंटो रूट को ट्रैक करना शुरू किया, ताकि index.php और Mage.php में परिवर्तन को ट्रैक किया जा सके, और आसान मैगनेटो अपग्रेड के लिए मॉडेम के लिए निश्चित रूप से प्रासंगिक हो। ।
कॉलिनम सिप

जवाबों:


8

सबसे अच्छा मैं आया था एक संगीतकार स्थापित / अद्यतन के बाद यह चल रहा था

$ find * -type l -not -exec grep -q "^{}$" .gitignore \; -print >> .gitignore

कमांड को रूट रूट डायरेक्टरी में चलाया जाना चाहिए। यह। सिग्नोर फ़ाइल में सभी सिम्लिंक जोड़ता है जो पहले से वहाँ नहीं हैं।


यह पथ की तरह उत्पन्न करता है ./foo/bar.. मुझे लगता है कि हमें पहले को हटाना होगा .- क्या यह आपके लिए काम करता है?
एलेक्स

मेरे लिए अग्रणी के साथ ठीक काम करता है ., हाँ। बचाव के लिए आसान find . -type l -not -exec grep -q "{}" .gitignore \; -print | sed 's/^\.\///'
लाली

असल में, यह गपशप को तोड़ता है ... ठीक है, शायद रास्ते को साफ करने का एक अच्छा तरीका है ...
विनय

1
सरल उपाय find * ...:। मेरे उत्तर को अपडेट करेंगे।
विनय

3

यह विधि केवल अनकम्प्रेस्ड सिम्लिंक्स को जोड़ती है इसलिए डुप्लिकेट प्रविष्टियों को जोड़े बिना दोहराया जा सकता है, जो सबमॉड्यूल्स में होते हैं या अन्यथा पहले से ही नजरअंदाज कर दिए जाते हैं, या जानबूझकर ट्रैक किए गए सिम्लिंक।

for f in $(git status --porcelain | grep '^??' | sed 's/^?? //'); do
    test -L "$f" && echo $f >> .gitignore;
    test -d "$f" && echo $f\* >> .gitignore;
done


1

@ColinM और @Vinai का संयुक्त समाधान जो मेरे लिए काम करता है

for f in $(git status --porcelain | grep '^??' | sed 's/^?? //'); do
    if test -L "$f"
    then
        test -L "$f" && echo $f >> .gitignore;
    elif test -d "$f"
    then
        find ${f%/} -type l -not -exec grep -q "^{}$" .gitignore \; -print >> .gitignore
    fi
done

क्या आपने देखा कि हाल ही में कंपोज़र इंस्टॉलर ऑटो ने सिम्बलिंक्स को बाहर कर दिया था?
एलेक्स

ज़रूर, लेकिन मेरी कुछ परियोजनाएं संगीतकार नियंत्रण में नहीं हैं। और यहां दिए गए समाधान केवल संगीतकार परियोजनाओं के लिए ही नहीं हैं, बल्कि पूरी तरह से सहानुभूति को अनदेखा करने के लिए हैं। आशा है कि यह किसी की मदद करेगा
martin_mageworx
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.