2012-03-09 18 views
7

क्या किसी के पास साझा करने के लिए ऐसी कोई स्क्रिप्ट है?पर्सिलिस्ट चेंफलिस्ट डिफ स्क्रिप्ट

  • इनपुट के रूप में एक लंबित परिवर्तन सूची संख्या लेता
  • अनुभव कई लोग हैं जो सारा दिन जबरदस्ती के साथ काम इन चारों ओर लात है से (ऐड के लिए खुला फ़ाइलों सहित) एक एकीकृत diff

मैं जानता हूँ कि आउटपुट। "पी 4 diff" के माध्यम से नई गयी फाइलों को अलग करते समय मैं वास्तव में "फ़ाइल दृश्यों में नहीं" फ़ाइल के पूरे मुद्दे के साथ सहायता का उपयोग कर सकता हूं।

+0

मैं इस तरह कुछ ढूंढ रहा था: (http://confluence.atlassian.com/display/CRUCIBLE/Creating+a+Patch+Review#CreatingaPatchReview-PforceforcePatchCreationViaTheCommandLine या यह: https://answers.atlassian.com/ प्रश्न/9522/स्वचालित-पैच-समीक्षा-स्क्रिप्ट-फॉरफोर्स – user675801

उत्तर

2

मैं समय एक उचित समाधान खोजने के लिए नहीं था तो मैं इस एक लाइनर का प्रयोग किया:

p4 describe $CHANGELIST | sed -ne 's:^\.\.\. \(.*\)#[0-9][0-9]* [a-z][a-z]*$:\1:p' | xargs p4 diff -du 

यह ऐसे काम करता है:

के बाद से -

। .. लंबित चेंजलिस्ट को 'लंबित' के रूप में इंगित किया गया है और फ़ाइल diffs प्रदर्शित नहीं होते हैं।

p4 describe $CHANGELIST 

से ही काम नहीं चलेगा, लेकिन आप एक प्रारंभिक बिंदु के रूप में उपयोग कर सकते हैं। यह आपके $CHANGELIST में परिवर्तित की गई फ़ाइलों की एक सूची (अन्य चीजों के साथ) हो जाता है।

sed -ne 's:^\.\.\. \(.*\)#[0-9][0-9]* [a-z][a-z]*$:\1:p' 

रूप ... <depot-file>#<revision> <action>

xargs p4 diff -du 

का ही लाइनों के <depot-file> हिस्सा प्रिंट करता डिपो फ़ाइलों की सूची ले जाता है और उस पर p4 diff -du चलाते हैं। -d ध्वज u (एकीकृत प्रारूप) आपके $P4DIFF प्रोग्राम (जो diff होना चाहिए) को पास करता है।

+0

क्या यह विंडोज़ पर काम करता है, मुझे "sed" को कमांड नहीं मिला है।मैं एक रंगीन प्रारूप में फ़ाइल diff (हटाने और जोड़ दोनों शामिल) कैसे प्राप्त कर सकता हूं जिसे मैं समीक्षा के लिए एक सहकर्मी को ईमेल के माध्यम से भेज सकता हूं? – noobcode

+0

'sed',' xargs' और 'diff' आमतौर पर यूनिक्स-जैसी प्रणालियों पर मौजूद होते हैं। विंडोज़ पर आप तीसरे पक्ष यूनिक्स जैसी यूटिलिटीज को इंस्टॉल कर सकते हैं, या पावरशेल का उपयोग करने का प्रयास कर सकते हैं। देखें: http://stackoverflow.com/q/127318/110488 –

-1

क्या p4 describe -du changelist आपके लिए काम नहीं करता है?

+1

नहीं, यहां क्यों है: स्क्रिप्ट आउटपुट एक "diff" या "पैच" होगा (आपकी पसंदीदा शब्दावली के आधार पर)। लिटमस परीक्षण "क्या यह हो सकता है परिवर्तनों को पूरी तरह से फिर से बनाने के लिए यूनिक्स पैच उपयोगिता को खिलाया जाए? "ध्यान दें कि पी 4 वर्णन में" जोड़ने के लिए खोला गया "फाइलों की सामग्री शामिल नहीं है, इसलिए पैच में सभी नई जोड़े गए फाइलें गायब होंगी। – user675801

+0

आह, मैं देखता हूं - जैसा कि एक कामकाज जिसे आप पूरे डीआईआर पर 'पी 4 एड' चला सकते हैं, और उन फ़ाइलों को अनदेखा कर सकते हैं जो पहले से मौजूद हैं। एक बेहतर समाधान (स्टेटस कमांड) अगली रिलीज पर आ रहा है। एक बार जब आप जानते हैं कि कौन सी फाइलें शामिल हैं, तो आप उनकी सामग्री को डंप कर सकते हैं पी atch। इसलिए मुझे लगता है कि एक स्क्रिप्ट की आवश्यकता होगी। –

+0

'पी 4 वर्णन' संशोधित फ़ाइलों के लिए भी, किसी भी diff को प्रदर्शित नहीं करता है, यदि परिवर्तक लंबित है। –

0

यह मेरे लिए काम करता है:

p4 diff2 //depot/a/b/c/... //depot/a/b/c/[email protected]=$CHANGELIST | grep -v '<none>' 

अधिक विशिष्ट मार्ग, तेजी से निष्पादन। आप एक अलग शाखा के खिलाफ परिवर्तनीय diff2 भी कर सकते हैं।

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