2012-04-24 8 views
7

के बाद ग्रह सेटिंग्स टाइमस्टैम्प टिप्पणी बदलता है मेरे पास कई (> 50) बंडलों के साथ एक ग्रहण कार्यक्षेत्र है। कुछ बंडलों में विशेष परियोजना सेटिंग्स होती है, उदाहरण के लिए, ग्राहक-विशिष्ट कोड स्वरूपण।ग्रहण

यदि मैं एक नया वर्कस्पेस सेट करता हूं और ग्राहक-विशिष्ट कोड स्वरूपण के साथ एक मौजूदा प्रोजेक्ट चेकआउट करता हूं, तो ग्रहण दिनांक दिनांक org.eclipse.jdt.ui.prefs में स्वचालित तिथि को स्वचालित रूप से बदल देता है!

#Tue Apr 24 09:30:25 CEST 2012 
eclipse.preferences.version=1 
formatter_profile=_myProfile 
formatter_settings_version=12 

ही org.eclipse.core.resources.prefs सेटिंग्स के साथ होता है फ़ाइल अगर मैं सेट:

#Tue Apr 24 09:15:20 CEST 2012 
eclipse.preferences.version=1 
formatter_profile=_myProfile 
formatter_settings_version=12 

इस फ़ाइल (org.eclipse.jdt.ui.prefs) चेकआउट के बाद है:

यह वरीयता फ़ाइल (org.eclipse.jdt.ui.prefs) SVN में है पूरी परियोजना के लिए यूटीएफ -8 को एन्कोडिंग।

SVN:

#Tue Apr 24 09:26:48 CEST 2012 
eclipse.preferences.version=1 
encoding/<project>=UTF-8 

चेकआउट करने के बाद: एक परियोजना दोनों की स्थापना फ़ाइलें (org.eclipse.core.resources.prefs और org.eclipse.jdt.ui.prefs) शामिल हैं

#Tue Apr 24 09:28:00 CEST 2012 
eclipse.preferences.version=1 
encoding/<project>=UTF-8 

अगर केवल org.eclipse.core.resources.prefs सेटिंग फ़ाइल बदल जाएगा!

क्या कोई क्यों जानता है ग्रहण इस पंक्ति को बदलता है और मैं इससे कैसे बच सकता हूं?

+2

बहुत ही रोचक सवाल। मेरे पास कोई जवाब नहीं है, लेकिन एक टिप्पणी: विच्छेदन में ग्रहण की सेटिंग्स को स्टोर करना सुविधाजनक है, लेकिन कभी-कभी यह आपको काटता है। सबवर्जन केवल पूर्ण फाइलों को स्टोर करने में सक्षम है, और ग्रहण की कॉन्फ़िगरेशन भाग विन्यास, भाग उत्पन्न या कैश किया गया है। – mliebelt

+0

** ** ** ग्रहण तिथि क्यों बदलता है: यह मानक '.properties' फ़ाइल प्रारूप [java.util.Properties] द्वारा प्रबंधित किया गया है (http://docs.oracle.com/javase/6/docs/api /java/util/Properties.html)। इसमें फ़ाइल लिखी गई तारीख शामिल है। –

उत्तर

6

अपनी ग्रहण सेटिंग्स को subversions में स्टोर न करें !!! यह आपको अलग-अलग सेटिंग्स या अलग ग्रहण संस्करणों की अनुमति नहीं देता है। यदि आपके पास अलग-अलग वातावरण हैं तो यह वास्तविक दर्द होगा।

Workspace Mechanics जैसे कुछ का उपयोग करने पर विचार करें यदि आप अपनी कार्यक्षेत्र सेटिंग समन्वयित रखना चाहते हैं।

यदि यह केवल आपकी प्रारूप सेटिंग्स को साझा करने के लिए, उन्हें एक्सएमएल के रूप में निर्यात करें और एक्सएमएल फ़ाइल को अपने भंडार में संग्रहीत करें। प्रत्येक डेवलपर एक्सएमएल फाइल आयात कर सकता है।

+0

आपके उत्तर के लिए धन्यवाद लेकिन - (1) आम तौर पर हमारे पास एक मानक डेवलपर ग्रहण होता है। सभी डेवलपर्स का एक ही संस्करण है! लेकिन हमें अलग-अलग परियोजनाओं के लिए ग्राहक विशिष्ट सीटिंग की आवश्यकता है। (2) वर्कस्पेस यांत्रिकी के लिंक के लिए धन्यवाद। मैं आज इसका परीक्षण करूंगा! – Tim

+1

वर्कस्पेस मैकेनिक्स ठीक है ... लेकिन आखिरी बार मैंने जांच की कि आप विभिन्न परियोजनाओं के लिए अलग-अलग सेटिंग्स नहीं कर सकते हैं। मुझे भी विभिन्न परियोजनाओं के लिए अलग-अलग प्रारूपण करने की आवश्यकता है - हालांकि इस मामले में यह ऐतिहासिक कारणों से है ... –

+0

वर्कस्पेस मैकेनिक्स हमारे लिए एक विकल्प नहीं है! हम पूरी आईडीई के लिए हमारी प्रारूप सेटिंग्स साझा करना शुरू कर देंगे और परियोजना विशिष्ट नहीं होंगे! इसके कारण, यह वास्तव में मेरे लिए सही जवाब है! – Tim

1

इसने मुझे कई अवसरों पर भी परेशान किया है, लेकिन मुझे यकीन नहीं है कि मैं आपको एक पूर्ण उत्तर दे सकता हूं।

सबसे पहले, मेरी org.eclipse.core.resources.prefs फ़ाइलें कभी में टाइमस्टैम्प शामिल नहीं है! मेरे पास अन्य वरीयता फाइलें हैं - जैसे org.eclipse.jdt.ui.prefs - जो हमेशा टाइमस्टैम्प लगती हैं। मेरे वर्तमान सेट-अप में वे कभी भी अनावश्यक रूप से अपडेट नहीं होते हैं। Plugin.getPluginPreferences() के माध्यम से एक्सेस किया गया - -

वरीयता एपीआई की कई पीढ़ियों

  • org.eclipse.core.runtime.Preferences हैं ग्रहण 3.0 में पदावनत; अब अनुकरण - इसका उपयोग न करें!
  • org.eclipse.jface.preference.* - AbstractUIPlugin.getPreferenceStore() के माध्यम से एक्सेस किया गया - ग्रहण 3 में उल्लिखित।1; अब नकली - क्षेत्र संपादकों के लिए प्रयोग किया जाता है
  • org.eclipse.core.runtime.preferences.* - Platform.getPreferencesService() के माध्यम से एक्सेस किया गया -

उन प्राथमिकताओं कि एपीआई की तीसरी पीढ़ी का उपयोग करें, पढ़ने और वरीयता फ़ाइलें लिख लगता है हमेशा EclipsePreferences के माध्यम से होने की एक OSGi वरीयता सेवा के आधार पर । यह वर्ग "सही" चीज करता है और टाइम स्टैम्प को हटा देता है।

कुछ मामलों में - उदा। जेडीटी में स्वरूपण को संभालने में - एक विशेष org.eclipse.jface.preference.PreferenceStore का उपयोग किया जाता है। यह कक्षा सही समय नहीं है क्योंकि बस टाइम स्टैम्प लिखती है।

क्यों इस वर्ग के लिए किया जाता है और वास्तव में जो मामलों में यह प्रयोग किया जाता है, कोड से बहुत स्पष्ट नहीं है ...

एक बात हालांकि निश्चित है, मैं एक तरह से इस से बचने के लिए नहीं मिल सकता है!

1

क्या यह लाइन के अंत में एक समस्या हो सकती है? ग्रहण के अपने विशेष संस्करण की एक विशिष्टता?

मैं कल्पना कर सकता हूं कि ग्रहण एसवीएन में फ़ाइल के लिए उपयोग किए जाने वाले ईओएल चरित्र विकास के लिए उपयोग की जाने वाली मशीन पर डिफ़ॉल्ट से मेल नहीं खाता है, तो किसी भी स्पष्ट वास्तविक परिवर्तन के बिना सेटिंग्स फ़ाइलों को फिर से लिखना। उस स्थिति में आपको मशीनों को स्विच करते समय केवल समस्या दिखाई देनी चाहिए। फिक्स समस्याग्रस्त फ़ाइलों में svn:eol-style = native संपत्ति जोड़ना होगा।

मैं समस्या पर अटकलों के लिए खुद को सीमित करता हूं क्योंकि मैं आपके द्वारा देखे जा रहे व्यवहार को दोहराने वाली लाइन अंतराल के साथ या बिना दोहराना नहीं कर सकता। मेरे पास रिपो में कॉन्फ़िगरेशन फ़ाइलों के साथ कई ग्रहण परियोजनाएं हैं और हालांकि वे अकल्पनीय तरीके से ग्रहण द्वारा स्वचालित रूप से परिवर्तित नहीं होते हैं, वे हमेशा काफी बदल जाते हैं। मुझे किसी भी सेटिंग्स फ़ाइलों को केवल अपनी परियोजना को आयात करने के लिए ही ग्रहण हेलीओस एसआर 2 (जो आपकी सेटिंग्स फ़ाइलों के प्रारूप से बेहतर मेल खाता है) या ग्रहण एसडीके 3.7.2 (एम20120208-0800) पर अपनी परियोजना आयात करके प्राप्त नहीं कर सकता है। शायद ग्रहण को अपग्रेड करने से समस्या हल हो जाएगी (अपनी सेटिंग्स को निर्यात करना सुनिश्चित करें!)।