2010-01-28 8 views
13

क्या कोई तरीका है कि फाइल प्रकार को बाइनरी के रूप में सेट किए बिना टेक्स्ट फ़ाइलों को अकेले छोड़ने का कोई तरीका है? या इसे छोड़कर, क्या पेर्सफोर्स क्लाइंट को अलग-अलग द्विआधारी कहने का कोई तरीका है? बाइनरी आमतौर पर वांछनीय नहीं है, क्योंकि मैं diff की क्षमता खो देता है।पर्सफोर्स: टेक्स्ट-फ़ाइल प्रारूप को बदलने से पर्सफोर्स को

स्पष्टीकरण के लिए: यदि मैं अपने विंडो क्लाइंट पर * .txt फ़ाइल में परिवर्तन और संपादन करता हूं, तो नई लाइनों में डीओएस प्रारूप के अनुसार सीआर + एलएफ होगा। लेकिन अगर मैं यूनिक्स क्लाइंट पर पी 4 सिंक करता हूं, तो इसमें केवल एलएफ होगा। पर्सफोर्स क्लाइंट कहां रहता है इस पर ध्यान दिए बिना, प्रारूप को रखने के लिए मुझे पर्सफोर्स की आवश्यकता है।

उसने कहा, मेरे पास एक कार्य-आसपास है: फ़ाइल प्रकार को बाइनरी के रूप में सेट करें; और/या "टेक्स्ट" के रूप में सेट की गई टेक्स्ट फ़ाइलों के साथ एक शाखा बनाएं, और समय-समय पर मेनलाइन में एकीकृत करें जहां टेक्स्ट फाइलें "बाइनरी" के रूप में सेट की गई हैं। लेकिन यह एक बहुत ही जटिल समस्या है जिसके लिए एक बहुत ही जटिल समस्या होनी चाहिए।

अंत में, मैं पर बल विंडोज क्लाइंट 2006.2 पर हूं।

अग्रिम धन्यवाद।

उत्तर

8

अपने सभी क्लाइंट/वर्कस्पेस चश्मे को 'यूनिक्स' लाइन-एंडिंग पर सेट करें। फिर जब आप विंडोज़ में चेक इन करते हैं तो कोई रूपांतरण नहीं होगा। जब पाठ फ़ाइलें आप मजबूरन लिए, प्रकार मानचित्रण तालिका ओवरराइड करने के लिए -t विकल्प के साथ आदेश p4 add का उपयोग द्विआधारी पर विचार किया जा करना चाहते हैं कि जोड़ने

http://answers.perforce.com/articles/KB_Article/CR-LF-Issues-and-Text-Line-endings/

+0

ठीक है। यह काफी बेहतर है। आदर्श नहीं होने पर, यह एक अलग शाखा बनाने से कहीं बेहतर है। धन्यवाद! – hythlodayr

+0

लिंक को अपडेट किया गया: http://answers.perforce.com/articles/KB_Article/CR-LF-Issues-and-Text-Line-endings/ –

-3

फ़ाइलों को एक अलग एक्सटेंशन दें।

+1

नहीं, क्योंकि इन्हें उत्पादन-गुणवत्ता वाली फाइलें माना जाता है। एक को सिंक्रनाइज़ और परेशानी रहित वातावरण में सिंक और कॉपी करने में सक्षम होना चाहिए। एक ही नस में, unix2dos या तो एक विकल्प नहीं है। – hythlodayr

5

पर्सफोर्स क्लाइंट आपके क्लाइंट पर LineEnd विकल्प ठीक से सेट किए गए विभिन्न प्लेटफॉर्म पर समन्वयित करते समय लाइन को सही तरीके से समाप्त कर सकता है। शायद आप अपना सेट गलत है? अपनी क्लाइंट चश्मा खोलें और अपनी आवश्यकताओं के अनुसार LineEnd विकल्प सेट करें।

अधिक जानकारी के लिए अपनी वेबसाइट पर this KB article देखें। यहाँ एक अंश है:

सर्वर साइड पर लाज़िमी यूनिक्स शैली वामो का उपयोग कर लाइन अंत सभी पाठ फ़ाइलें संसाधित करता है। हालांकि लाज़िमी भंडार ऑपरेटिंग सिस्टम की मूल लाइन समाप्ति सम्मेलन (सीआर/ विंडोज, यूनिक्स पर वामो पर वामो) में डिस्क पर सर्वर संग्रह फ़ाइलों, सभी लाइन अंत आंतरिक के लिए यूनिक्स शैली वामो के लिए सामान्यीकृत लाइन अंत कर रहे हैं पर्सफोर्स सर्वर ऑपरेशंस जैसे पी 4 सिंक, पी 4 सबमिट और पी 4 डिफ।

ग्राहक कार्यक्षेत्र पक्ष पर, लाइन-अंत के ख़ामख़ाह हैंडलिंग प्रत्येक clientspec के लिए एक वैश्विक विकल्प द्वारा निर्धारित होता है। जब आप पी 4 सिंक के साथ क्लाइंट वर्कस्पेस में को टेक्स्ट फ़ाइलों को सिंक करते हैं, या उन्हें पी 4 सबमिट के साथ एक पर्सफोर्स सर्वर पर सबमिट करते हैं, तो उनकी लाइन-एंडिंग क्लाइंटपेक लाइन एंड अनुभाग में निर्दिष्ट के रूप में परिवर्तित की गई है।

+0

मुझे इससे डर था, लेकिन लेख के लिए धन्यवाद। सीधे शब्दों में कहें, हमारे यूनिक्स perforce क्लाइंट (और फ़ाइल सर्वर) विंडोज और यूनिक्स पाठ फ़ाइलों का मिश्रण पकड़ने में सक्षम होना चाहिए। इससे भी बदतर: हमारे पास कुछ स्थानीयकरण टेक्स्ट फ़ाइलें हैं (जावा गुण फ़ाइलों के समान) जो कि पर्सफोर्स सर्वर मैंगल्स है। हां, चीजों को बाइनरी में सेट करने का एकमात्र समाधान है। – hythlodayr

+0

@hythlodayr: क्या आपके पास वर्तमान में Perforce के साथ एक समर्थन अनुबंध है? यदि ऐसा है, तो आप उन्हें एक कॉल दे सकते हैं। शायद वे कुछ चालें जानते हैं जो इसे आपके इच्छित तरीके से व्यवहार करने के लिए प्राप्त कर सकते हैं। – raven

+0

समस्या यह है कि यह काम नहीं करता है और पेर्स बग को स्वीकार करने से इंकार कर देता है। पर्सफोर्स डिफ़ॉल्ट रूप से सभी टेक्स्ट फ़ाइलों को दूषित करता है यदि आपने कभी भी * nix से फ़ाइल सबमिट की है जिसमें Windows लाइन समाप्ति या इसके विपरीत है। – Richard1403832

1

देखें। प्रलेखन here देखें। दिया गया उदाहरण p4 add -t binary file.pdf है।

3

मैं अभी भी एक ही समस्या में आया हूं, लेकिन एक बेहतर समाधान है जिसमें क्लाइंट चश्मा बदलना शामिल नहीं है (जो अंतर्राष्ट्रीय हैं, और जिनमें से सभी के पास मुझे पहुंच है)।

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

सिगविन के पुराने संस्करणों के लिए एक संभावित समाधान "टेक्स्ट" विकल्प का उपयोग करके रूट को माउंट करना है, जिसका अर्थ है कि फाइलों में सीआर + एलएफ लाइन एंडिंग हो सकती है। हालांकि, सिगविन 1.7.9 में अपग्रेड करने पर, यह अब काम नहीं करता है, क्योंकि माउंट्स क्षणिक होते हैं जब तक उन्हें/etc/fstab में लिखा नहीं जाता है। मैं यह काम करने के लिए प्रबंधन नहीं किया था।

सौभाग्य से, लाज़िमी गुरु मेरे बगल में बैठे द्विआधारी + डी, जो पाठ फ़ाइलों के रूप में ही आरसीएस वृद्धिशील पैच भंडारण का उपयोग करता है, लेकिन रूपांतरण समाप्त होने के स्वत: लाइन के बिना करने के लिए फ़ाइल का प्रकार बदलने के समाधान के साथ आया था।

मैं अपने स्थानीय कार्यक्षेत्र और डिपो के बीच सफलतापूर्वक इन "टेक्स्ट" फ़ाइलों को अलग कर सकता हूं।

संबंधित मुद्दे