2013-04-23 5 views
7

क्या पर्सफोर्स में सबमिट करने से पहले एक अलग स्ट्रीम में असंबद्ध परिवर्तनों को स्थानांतरित करने का कोई अच्छा तरीका है (git stash, git checkout otherbranch, git stash pop के समतुल्य)?बल: एक अलग स्ट्रीम में असंबद्ध परिवर्तनों को स्थानांतरित करना

वर्तमान में मेरे पास स्थानीय रूप से चेक की गई फ़ाइलें हैं (गैर-विशेष रूप से) और संपादित की गई। मैंने उन्हें ढंकने की कोशिश की है और फिर उन्हें लक्षित स्ट्रीम में शामिल करने की कोशिश की है, लेकिन मुझे "फ़ाइल दृश्यों में क्लाइंट व्यू" नहीं मिलता है। जब मैं चेंजलिस्ट (शेल्फ या नहीं) देखता हूं, तो फाइलों में सभी पथ होते हैं जिनमें मूल स्ट्रीम शामिल होती है।

मेरा लक्ष्य स्ट्रीम वह है जिसे मैंने अभी बनाया है, मूल धारा से अभिभावित है। मैं पी 4 वी का उपयोग कर रहा हूँ। मैंने स्थापित पर्सफोर्स विजुअल कंपोनेंट्स का संस्करण 123.57.9 578 है, और जब मैं कमांड लाइन से पी 4 चलाता हूं, तो यह "सर्वर 2012.2/551823" कहता है। यदि आवश्यक हो तो मैं अधिक जानकारी जोड़ सकता हूं।

उत्तर

1

मेरा मानना ​​है कि शेल्व/अनहेल्व तकनीक को 2013.1 सर्वर की आवश्यकता नहीं है, 2012.2 सर्वर नहीं। आपको पर्सफोर्स तकनीकी सहायता के साथ इसकी पुष्टि करनी चाहिए।

+0

उत्तर के लिए धन्यवाद। दुर्भाग्यवश ऐसा लगता है कि हमें इसकी पुष्टि करने से पहले अगले हफ्ते तक इंतजार करना होगा, क्योंकि हमारे "पर्सफोर्स किंग" वर्तमान में अनुमान लगा रहे हैं - एक पर्सफोर्स कॉन्फ़्रेंस: पी – entheh

+0

शेल्विंग प्रभाव के पुराने संस्करणों पर काम करता है। हालांकि, आप केवल उसी पथ से वंचित हो सकते हैं, जिसमें शाखा रूट शामिल है, ताकि आप किसी अन्य शाखा में शामिल नहीं हो सकें। –

5

आप p4 unshelve कमांड को शेल्ज़लिस्ट में शेल्फ फ़ाइलों को रीमैप करने के लिए -एस विकल्प का उपयोग कर किसी अन्य स्ट्रीम में रीमेप करने के लिए उपयोग कर सकते हैं। पूर्व:

p4 unshelve -s <changlist#-with-shelved-files> -S //depot/streamname 

सुनिश्चित नहीं है कि यह केवल एक निश्चित संस्करण या ऊपर या नहीं है। हालांकि, हम पी 4 वी के माध्यम से ऐसा करने का कोई तरीका नहीं ढूंढ पाए।

1

यदि आप कमांड लाइन की तुलना में पी 4 वी का उपयोग करके किसी और कारण से अधिक आरामदायक हैं, तो कम से कम पी 4 वी 2014.2 में समाधान az2tonez जीयूआई के साथ किया जा सकता है।

  1. अपने परिवर्तन को शेल्व करें, और सुनिश्चित करें कि आपके पास वर्कस्पेस में कोई अन्य फाइल नहीं है।
  2. 'स्ट्रीम' टैब में, वर्कस्पेस आइकन को वर्तमान स्ट्रीम से उस स्ट्रीम तक खींचें जिसे आप परिवर्तन से में ले जाना चाहते हैं, और नवीनतम परिवर्तन प्राप्त करें।
  3. 'लंबित' टैब में फ़ाइलों को अनदेखा करें। विकल्पों के तहत 'असुरक्षित फाइलों को मानचित्र करें' चुनें और उस स्ट्रीम का चयन करें जिसे आप से में ले जाएं, और 'अनशेल्व' दबाएं।
  4. स्रोत का उपयोग कर फ़ाइलों को हल करें।
  5. अपने परिवर्तन सबमिट करें, और voilá! आपके परिवर्तन अब दूसरी धारा में होना चाहिए।
3

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

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

यहां एक ठोस उदाहरण है: मान लें कि आपके पास Dev-1 में फ़ाइलें शामिल हैं जिन्हें आप Dev-2 पर ले जाना चाहते हैं। ये दो देव धाराएं Main के प्रत्यक्ष बच्चे हैं।आप Dev-1 की फ़ाइलों को सीधे Dev-2 में सहेज नहीं सकते हैं, सबसे पहले आपको Main में अनचाहे और अस्थायी रूप से फिर से शेल्व करना होगा, क्योंकि देव स्ट्रीम चश्मा दोनों Main के संदर्भ में अपने रिश्ते का वर्णन करते हैं और एक-दूसरे के साथ नहीं।

तो, आप के साथ Dev-1 के Main में फ़ाइलों unshelve "मानचित्र धारा Dev-1 का उपयोग कर unshelved फ़ाइलें" क्योंकि उस कल्पना का वर्णन संबंध चल जा रहा है। फिर, फ़ाइलों को Main में शेल्व करें, और फिर अपने कार्यक्षेत्र को Dev-2 पर स्विच करें। अब, आप Main शेल्व की गई फ़ाइलों के संस्करण को अनदेखा कर सकते हैं, "स्ट्रीम Dev-2 का उपयोग करके अनचाहे फ़ाइलों को मानचित्र करें", क्योंकि यह स्पेक Main से Dev-2 से सीधे संबंधों का वर्णन करता है।

एकाधिक होप्स के साथ, आप अपने नेटवर्क में किसी अन्य कनेक्ट स्ट्रीम को प्राप्त कर सकते हैं। यह git stash और git stash pop जितना आसान नहीं है, लेकिन याद रखें कि गिट यह मान रहा है कि फ़ाइल नाम गिट शाखाओं के बीच नहीं बदलते हैं, जबकि पर्सफोर्स प्रत्येक हॉप को फ़ाइलों और फ़ोल्डर्स के मैपिंग को मनमाने ढंग से बदलने की अनुमति देता है।

+1

उत्तर के लिए धन्यवाद। मैं वास्तव में टिप्पणी नहीं कर सकता क्योंकि मैं आगे बढ़ गया हूं और अब पेर्सफोर्स का उपयोग नहीं करता हूं, लेकिन सिर्फ यह कहना चाहता था कि गिट हैंडल का नाम बदला गया है और इस तरह के मामलों में मेरे अनुभव में फ़ाइलों को बहुत अच्छी तरह से स्थानांतरित किया गया है। बेशक पर्सफोर्स की अपनी ताकतें हैं (विशेष रूप से आंशिक विचार), लेकिन यह उनमें से एक प्रतीत नहीं होता! – entheh

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