2012-05-02 33 views
6

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

हम ग्रहण में जेबॉस एप्लिकेशन सर्वर 5.1 का उपयोग कर रहे हैं। कुछ लोगों ने जेबॉस टूल्स एक्लिप्स प्लगइन डाउनलोड किया है ताकि वे जेबॉस 5.1 रनटाइम सर्वर को अपने ग्रहण कार्यक्षेत्र में "जेबॉस एएस 5.1" के रूप में जोड़ सकें। यह एक classpath लाइन है कि इस तरह दिखता है में परिणाम है:

<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.jboss.ide.eclipse.as.core.server.runtime.runtimeTarget/JBoss 5.1 Runtime"/> 

अन्य लोगों को डाउनलोड करने और JBoss उपकरण प्लगइन स्थापित करने का मूल्य नहीं दिख रहा है, तो वे बस का उपयोग ग्रहण के अंतर्निहित JBoss सर्वर एडाप्टर है, जो केवल ऊपर जाता है जेबॉस v.50 करने के लिए।

<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.generic.runtimeTarget/JBoss v5.0"/> 

मैं अपने .gitignore फ़ाइल क्योंकि लिए .classpath जोड़ने के लिए नहीं करना चाहती:: वे एक classpath लाइन है कि इस तरह दिखता है

  1. फ़ाइलें पहले से ही अपने मूल करने के लिए धकेल दिया जाता है, और हटाने वे एक सुपर दर्दनाक प्रक्रिया है जिसे मैंने अतीत में समझने और विफल करने में असफल रहा है।
  2. मैं उन लोगों को चाहता हूं जो नए कार्यस्थान स्थापित कर रहे हैं ताकि वे गिट से परियोजनाओं को आयात करने में सक्षम हो सकें और तुरंत जा सकें।

अभी तक हमने अपनी कार्यशील निर्देशिका में हमारी .classpath फ़ाइलों को संशोधित करने की कोशिश की है, लेकिन कभी भी काम नहीं कर रहा है। यह न केवल परेशान है क्योंकि वे हमारे गिट की स्थिति में दिखते रहते हैं, लेकिन कभी-कभी वे हमें एजीट में शाखाओं को मर्ज करने या स्विच करने की अनुमति नहीं देंगे - अपरिचित परिवर्तनों की शिकायत करते हैं।

मैंने क्लासपाथ वैरिएबल का उपयोग करने के बारे में इंटरनेट पर पढ़ा है, लेकिन मुझे जेबॉस पुस्तकालयों के लिए बिल्कुल सही रास्ता नहीं दिख रहा है। ऊपर सूचीबद्ध क्लासपाथ लाइनें कहीं ग्रहण/प्लगइन्स निर्देशिका के अंदर कहीं इंगित करती हैं? लेकिन मुझे यह नहीं मिल रहा है। मैंने अपने सी: \ jboss-5.1.0.GA \ निर्देशिका में कुछ चर को इंगित करने का भी प्रयास किया, लेकिन ऐसा कुछ भी प्रतीत नहीं होता है।

क्या भंडार के अंदर .classpath फ़ाइल को छोड़ने का कोई तरीका है क्योंकि यह अब वर्तमान स्थिति में है, ताकि नए उपयोगकर्ता जो भंडार को क्लोन कर लेते हैं, फिर भी उन्हें प्राप्त करें, लेकिन फिर किसी भी डेवलपर्स द्वारा किए गए सभी भावी परिवर्तनों को अनदेखा करें फ़ाइलें?

+0

जवाब का उपयोग पिछले बयान कुछ आप पहले से ही उल्लेख किया है है:। gitignore। – yorkw

+0

मुझे नहीं लगता कि पहले से ही धक्का देने वाली फ़ाइलों को हटा देना "सुपर दर्दनाक" है। आप अस्थायी रूप से स्थानीय फ़ाइल को स्थानांतरित करने का प्रयास कर सकते हैं और फिर प्रतिबद्ध-ए और पुश कर सकते हैं। – eaykin

उत्तर

1

एक और उत्तर content filter driver का उपयोग कर सकता है, यानी एक स्क्रिप्ट जिसे आप .gitattribute फ़ाइल में घोषित करते हैं।

filter driver

अपने रेपो के चेकआउट पर, धब्बा स्क्रिप्ट स्थानीय पर्यावरण का विश्लेषण करने, जगह में JBoss का पता लगाने और उसके अनुसार classpathentry अनुकूल के आरोप में किया जाएगा।
इस तरह, आप पहले से ही उस संस्करण की सबसे उपयोगी सामग्री रख सकते हैं, जबकि कुछ विशेष मामलों को अनुकूलित करते हुए classpathentry सही नहीं है।

+2

आपने अपने उत्तर से जुड़ा हुआ है, जो ... आपके अपने उत्तर से लिंक है। –

+1

@GlennMaynard सही: उन दो पुराने उत्तरों में कुछ और जानकारी है जो एक सामग्री फ़िल्टर में 'धुंध' कदम है। – VonC

6

एक आसान, एक बार प्रति डेवलपर समाधान Pagebakers और git से

git update-index --assume-unchanged <file> 

इसे पूर्ववत करने के लिए, केवल आपके लिए

git update-index --no-assume-unchanged <file> 
+0

यह उत्तर गिटहब की [अनदेखा फ़ाइलें सहायता पृष्ठ] (https://help.github.com/articles/ignoring-files) द्वारा "एक भंडार में फ़ाइलों के लिए अनुशंसा है, जो संस्करणित हैं (_i.e._ वे कर सकते हैं ' टी गिट-अनदेखा नहीं किया जाता है), अक्सर बदल जाते हैं, लेकिन शायद ही कभी प्रतिबद्ध होते हैं। आमतौर पर ये विभिन्न स्थानीय कॉन्फ़िगरेशन फ़ाइलें हैं जिन्हें संपादित किया जाता है, लेकिन कभी भी अपस्ट्रीम नहीं किया जाना चाहिए। " – Daryn