2012-03-02 14 views
7

कभी-कभी हम एक शाखा से दूसरे में परिवर्तन को एकीकृत करना चाहते हैं, लेकिन स्रोत परिवर्तन प्रभावी ढंग से अनदेखा कर सकते हैं। आम तौर पर हम इसे resolve -at के साथ करते हैं, जिसका अर्थ है "केवल स्रोत परिवर्तनों को अनदेखा करें", और लक्ष्य को अपरिवर्तित छोड़ दें। यह ऑपरेशन अभी भी पर्सफोर्स मेटाडेटा को प्रभावित करता है, हालांकि, अब यह समझता है कि प्रश्न में स्रोत संशोधन को लक्ष्य में एकीकृत किया गया है, इसलिए वे भविष्य में एकीकरण में नहीं आएंगे।हटाए गए लक्ष्यों

किसी भी लक्ष्य फ़ाइल हटा दी जाती है अगर, हालांकि, संकल्प निम्न त्रुटि के साथ विफल हो जाएगा:

<dest> - can't branch from <source> without -d or -Dt flag

ठीक है, तो -Dt ध्वज का उपयोग करें, और फ़ाइल को फिर से जोड़ा जाता है। यह हल करने के लिए योग्य नहीं है, इसलिए, मैं -at का उपयोग नहीं कर सकता, और कोई भी सबमिट फ़ाइल को फिर से बनाएगा, जो मैं नहीं चाहता (जो गंतव्य को अपरिवर्तित छोड़ना है)।

क्या मैं चाहता हूं कि ऐसा करने का कोई तरीका है? मैं गंतव्य में प्रत्येक विलोपन के लिए शाखास्पेक को संशोधित नहीं करना चाहता हूं, और वास्तव में ऐसे संशोधन शाखाओं के लिए उपयुक्त नहीं हो सकते हैं जिनके लिए मैं यह "कोई ऑप" व्यवहार नहीं चाहता हूं।

उत्तर

13

पर्सफोर्स सर्वर (2011.1) के नए संस्करण के लिए इसका समाधान है। the release नोट्स से:

When files have been edited in one branch and deleted in another, a special resolve will be scheduled to accept or ignore the branch or delete action. (This replaces the old "can't branch/delete without -d flag" warning.) The -Rb and -Rd flags to "p4 integrate" will force all branch and delete actions to be resolved, permitting them to be ignored even when they are not in conflict.

+0

बिल्कुल सही, बिल्कुल मुझे क्या चाहिए। ऐसा लगता है कि हम अभी भी कुछ प्रागैतिहासिक 2010 संस्करण पर अटक गए हैं, लेकिन मैं अपग्रेड के लिए दबाव डालूंगा! – BeeOnRope

+0

हमें अंततः इस संस्करण में मिला और '-R *' झंडे अपेक्षित के रूप में काम किया। – BeeOnRope