मैं एंड्रॉइड सॉफ्टवेयर विकसित करने वाली एक टीम में काम कर रहा हूं। कुछ टीम के सदस्य विंडोज का उपयोग करते हैं, कुछ मैक का उपयोग करते हैं, और मुझे लिनक्स का उपयोग करने के लिए जाना जाता है। हर कोई ग्रहण का उपयोग करता है।ग्रहण परियोजना.प्रोपर्टीज बैकस्लैश पथ हानिकारक मानते हैं
ईक्लीप्स project.properties
नामक एक फ़ाइल लिखता है; यहाँ एक उदाहरण है। महत्वपूर्ण हिस्सा पिछले तीन पंक्तियों, एंड्रॉइड लाइब्रेरी संदर्भ पथ है।
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-17
android.library.reference.1=../private-code/lib/SomeLibrary
android.library.reference.2=../google-play-services_lib
android.library.reference.3=../FacebookSDK
उपर्युक्त फ़ाइल कैसा दिखता है जब मैक या लिनक्स पर ग्रहण लिखता है। जब विंडोज़ पर एक्लिप्स इसे लिखता है, लाइब्रेरी संदर्भ रेखा बैकस्लाश के साथ लिखी जाती है।
बेशक विंडोज़ पर, बैकस्लाश स्वीकार्य पथ विभाजक हैं। लेकिन मैक और लिनक्स पर ऐसे पथ काम नहीं करते हैं। बात यह है कि, विंडोज़ पर, आगे slashes पूरी तरह से अच्छी तरह से काम करते हैं। इसलिए, हमारी नीति हमेशा फ़ाइल को आगे की स्लैश के साथ प्रतिबद्ध करती है, ताकि यह सभी के लिए काम करे।
लेकिन यह हमारे विंडोज उपयोगकर्ताओं के लिए दर्द है, और जब हम विंडोज उपयोगकर्ता गलती करते हैं तो यह हमारे लिए दर्द है, इसलिए मैं तकनीकी समाधान की तलाश में हूं।
, विंडोज पर एक सेटिंग ग्रहण में कहीं पता लगाएं आगे उपयोग करने के लिए यह कह स्लैश जब
project.properties
की तरह फाइलों में रास्तों की बचत: मैं दो विचार है। (बिल्ली क्यों डिफ़ॉल्ट नहीं है?!?)हम Mercurial का उपयोग करते हैं, इसलिए: कुछ प्रकार के "हुक" स्थापित करें जो समस्या को हल करेंगे।
- विंडोज कंप्यूटर पर एक प्रतिबद्ध हुक स्थापित करें, ताकि फ़ाइल को रेसॉजिटरी में आगे बढ़ाया जा सके और बैकस्लेश के साथ आगे की स्लैश द्वारा प्रतिस्थापित किया जा सके।
- मैक और लिनक्स कंप्यूटर पर पुल हुक स्थापित करें; इसलिए यदि फ़ाइल बैकस्लाश के साथ प्रतिबद्ध हो जाती है, तो वे फाइलें लिखे जाने तक तय हो जाते हैं।
हुक प्रतिबद्ध क्लीनर लगता है, यदि ऐसा है तो दोनों उपलब्ध हैं मैं एक एक पुल हुक से अधिक हुक प्रतिबद्ध काफ़ी होगा।
मुझे एक Mercurial एक्सटेंशन मिला जो रिक्त स्थान पर टैब संपादित करता है, जो कम से कम मेरे जैसा चाहता है। यह काफी जटिल है कि मैं इसे जो कुछ चाहिए उसे संशोधित करने की कोशिश करने का थोड़ा सा झुकाव हूं।
https://www.mercurial-scm.org/wiki/CheckFilesExtension
अन्य रणनीति एक हुक कि रास्तों के बैकस्लैश का पता लगाता है जोड़ने के लिए है, और बस के लिए प्रतिबद्ध रोकता है Windows उपयोगकर्ता के लिए मजबूर करने से पहले हाथ से फ़ाइल को ठीक करने के लिए। यह कुछ भी नहीं होगा।
अब इस समस्या का सामना करना पड़ रहा है। आपकी टीम किस समाधान पर बसे? –
अभी तक इसे हल नहीं किया है। मैं इस निष्कर्ष पर पहुंचा हूं कि सबसे अच्छा समाधान सरल है: बैकस्लैश गलत तरीके से होने पर हुक जो विफल हो जाते हैं, और विंडोज उपयोगकर्ताओं को इसे हाथ से ठीक करना होगा। फिलहाल, कोई भी उस फ़ाइल में बुनियादी बदलाव नहीं कर रहा है, इसलिए यह समस्या हमें काट नहीं रही है, और हम सभी व्यस्त हैं और इसके बारे में सोच नहीं रहे हैं। – steveha