2009-07-29 7 views
11

यदि आप sync पर बल देते हैं तो यह अक्सर हो सकता है, ऐसा करने के लिए भी कुछ भी नहीं करना चाहिए। यदि आप एक मजबूर सिंक (sync -f) करते हैं तो यह सर्वर से सभी फ़ाइलों को निश्चित रूप से सिंक करेगा और यदि आपके पास एक बड़ी परियोजना है तो यह अस्वीकार्य है।परफॉर्म पर तेज़ और सुरक्षित सिंक कैसे करें?

सवाल यह है कि आप तेजी से सिंक कैसे कर सकते हैं?

उत्तर

18

आपके प्रश्न का मुख्य हिस्सा "यहां तक ​​कि अगर यह होना चाहिए"। असफल होने के बावजूद, मेरे सभी (भी) पेर्सफोर्स के साथ कई वर्षों के अनुभव में, उपयोगकर्ता जो मजबूर रूप से मजबूर syncs पर वापस आते हैं, क्योंकि एक सामान्य सिंक वह नहीं करता जो वे उम्मीद करते हैं, सही ढंग से Perforce का उपयोग नहीं कर रहे हैं।

आपको पर्सफोर्स को आपके लिए अपनी हार्ड डिस्क का प्रबंधन करना होगा - सर्वर जानता है कि आपके पास कौन सी फाइलें हैं, और इसलिए एक सामान्य सिंक बस इसकी आवश्यकता होती है। यदि यह विफल हो जाता है, तो यह लगभग अपवाद के बिना एक संकेत है कि उपयोगकर्ता Perforce (उदा। एक्सप्लोरर में) के बाहर फ़ाइलों को संशोधित, हटाना, जोड़ना, नाम बदल रहा है।

कभी-कभी आपको सिस्टम मजाकिया (यानी पीसी गलती,) मिल सकती है जो इसका कारण बनती है, इसलिए यह आवश्यक नहीं है कि उपयोगकर्ता गलती करें। लेकिन ये बहुत दुर्लभ हैं - इसलिए मेरा "आदत" क्वालीफायर ऊपर है।

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

उम्मीद है कि मदद करता है।

+2

पर्सफोर्स यह बताता है कि आपके प्रत्येक क्लाइंट स्पेक के साथ कौन सी फाइलें हैं। यह जानकारी प्रत्येक क्लाइंट स्पेक के साथ सर्वर पर रखी जाती है - जिसमें इसे "सूची है" कहते हैं। साझा ग्राहक विशिष्ट उपयोगकर्ता अभ्यास नहीं हैं। उन्हें विशेष उपयोग परिदृश्यों को सक्षम करने के लिए पर्सफोर्स द्वारा अनुमति दी जाती है। लेकिन यदि आप अलग-अलग मशीनों पर काम कर रहे हैं, तो प्रति मशीन क्लाइंट स्पेक करके इसे संभाला जाता है। यह वही है जो उन्हें डिजाइन किया गया था। –

+0

मान लीजिए कि आपके पास एक बिल्ड फार्म है - क्या आप खेत में प्रत्येक कंप्यूटर के लिए वर्कस्पेस (क्लाइंटपेक) बनाना चाहते हैं? – sorin

+0

हां, अधिकांश परिस्थितियों में प्रति क्लाइंट स्पेक प्रति सलाह दी जाएगी। आप अपनी सृजन को स्वचालित कर सकते हैं, हालांकि, यह उतना दर्दनाक नहीं है जितना आप सोच सकते हैं। –

4

यदि आप एक असंगतता बनाते हैं, जहां पर बल आपके कार्यक्षेत्र में क्या हो रहा है इसका ट्रैक खो देता है, तो आपको "ऑफ़लाइन काम को दोबारा लिखना ..." फ़ंक्शन (पी 4 वी में) का उपयोग करना चाहिए।

यह एक फ़ोल्डर diff चलाएगा और आपको बताएगा कि असंगतताओं को हल करने के लिए आपको कौन से विकल्प हैं।

सामान्य रूप से, सुनिश्चित करें कि आप हमेशा बलपूर्वक (संपादन के लिए खोलें) के माध्यम से फ़ाइलों को स्पष्ट रूप से जांचें। यदि आप अन्य प्रणालियों के लिए उपयोग किया जाता है तो यह अजीब लगता है।

+3

क्षमा करें, लेकिन मैं इसके लिए दृश्य क्लाइंट का उपयोग करने का लक्ष्य नहीं रख रहा हूं। उसी प्रोजेक्ट के लिए मैं 6 अलग-अलग perforce सर्वर से फ़ाइलों को सिंक करता हूं, इसलिए केवल एक बैच समाधान स्वीकार्य है - मैं मैन्युअल रूप से प्रक्रिया को दोहराना नहीं चाहता हूं। – sorin

+0

@ सोरीन: क्या आपको कभी स्वीकार्य समाधान मिला है? बिल्ड बनाने को स्वचालित करने का प्रयास करते समय मैं कुछ इसी तरह से चल रहा हूं। मैं हर बार सिंक को मजबूर नहीं करना चाहता, क्योंकि इसमें ~ 2 घंटे लगते हैं। – Jordan

+0

क्षमा करें, लेकिन मैं अब और अधिक बलपूर्वक बोलता हूं। उनके साथ मेरा आखिरी अनुभव लगभग 5 साल पहले था। उनके लिए केवल एक ही भविष्य है, एक ब्लैकबेरी जैसा ही है। – sorin

6

जैसा कि अन्य उत्तरों द्वारा उल्लिखित है, आपको डिपो से सिंक किए गए निर्देशिका पेड़ के प्रत्येक "उदाहरण" के लिए एक अलग क्लाइंट (वर्कस्पेस) बनाना होगा।

आप-सिंक के लिए मजबूर करने को केवल उन फ़ाइलों डिपो से बदल दिया है कि चाहते हैं:

p4 diff -se ... | p4 -x - sync -f 
p4 diff -sd ... | p4 -x - sync -f 

चेतावनी: है कि किसी भी स्थानीय स्तर पर ऊपर लिख देगा बदल फ़ाइलें (वर्तमान निर्देशिका और उप निर्देशिकाओं में)।

आप कुछ फ़ाइलों को संपादित किया है और पहले संपादन के लिए उन्हें खोलने के भूल गए हैं तो बजाय, आप ऐसा कर सकते हैं:

p4 diff -se ... | p4 -x - edit 

जो संपादन के लिए है कि डिपो से अलग है किसी भी फाइल खुल जाएगा।

और यह:

p4 diff -sd ... | p4 -x - delete 

के लिए जो स्थानीय रूप से नष्ट कर दिया गया है किसी भी फ़ाइल को नष्ट खुल जाएगा।

0

मेरा मानना ​​है कि जिस आदेश को आप ढूंढ रहे हैं वह पी 4 साफ है।

से: http://www.perforce.com/perforce/r14.2/manuals/cmdref/p4_clean.html

"कार्यक्षेत्र में फ़ाइलें मौजूद है, लेकिन डिपो से लापता कार्यक्षेत्र से हटा दिया जाता डिपो में फ़ाइलें मौजूद है, लेकिन अपने कार्यक्षेत्र से लापता फाइलों का संस्करण किया गया है।। डिपो से सिंक किया गया आपके वर्कस्पेस में जोड़ा गया है। आपके वर्कस्पेस में संशोधित फ़ाइलें जिन्हें चेक नहीं किया गया है उन्हें डिपो से सिंक किए गए अंतिम संस्करण में बहाल किया गया है। "

+0

पी 4 क्लीन निश्चित रूप से नौकरी करेगा लेकिन बहुत बड़ी परियोजना पर यह बेहद धीमी है (सर्वर के पक्ष में पाए गए मामलों के स्वचालित संचालन के साथ मेल खाता है)। ओपी के लिए सबसे अच्छा मामला फाइल ऑपरेशंस करना है हालांकि प्रतिभा (हटाना, स्थानांतरित करना, संपादन इत्यादि)। कभी-कभी जांच को तब भी किया जाना चाहिए ताकि यह देखने के लिए कि कुछ भी दरारों के माध्यम से फिसल गया है या नहीं। – Newtopian

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