के साथ हेडर लाइन मेलमिच मैं diff फ़ाइल (पैच फ़ाइल) उत्पन्न करने की कोशिश कर रहा हूं और इस पैच को पहले से ही तैनात फ़ोल्डर में लागू कर रहा हूं। मैं निम्न आदेश चला रहा हूँ diff फ़ाइल उत्पन्न करने के लिए:tfs एकीकृत diff फ़ाइल पीढ़ी। पैच कमांड
tf diff version.asp /format:unified > C:\patch.diff
यह उत्पन्न करता है कुछ की तरह:
Comparing local to latest: C:\dev\folder\version.asp File: version.asp ===================================================================
--- version.asp (स्थानीय) 2011-06-17 09 : 18पाठ, फ़ाइल नाम के बाद, नहीं यहाँ
+++ वी होना चाहिए ersion.asp; 958 (सर्वर) 2011-09-19 14:27यहाँ
@@ -13,7 +13,7 @@
'============================================================
Dim APP_VERSION, APP_BUILD, APP_DATE
APP_VERSION = 6
-APP_BUILD = 45
+APP_BUILD = 52
%>
\ No newline at end of file
============================================================
समस्या रेखा है जो बोल्ड है पर दिखाई देता है एक ही। यूनिक्स पैच एप्लिकेशन फ़ाइल नामों को पहचाना नहीं है क्योंकि इन पंक्तियों में बिना किसी अतिरिक्त जानकारी के फ़ाइल नाम होना चाहिए। यदि मैं उन पंक्तियों पर फ़ाइल नाम के बाद टेक्स्ट हटा देता हूं, पैच सफलतापूर्वक चलाएगा। तो मेरा सवाल है: क्या हेडर में ऐसी जानकारी के बिना टीएफ diff से diff फ़ाइल उत्पन्न करना संभव है ताकि यह पैच के साथ संगत हो?
रेगेक्स लगाने और ऐसी लाइनों को बदलने जैसे विकल्प हैं लेकिन यह काम करने का आखिरी प्रयास होगा।
अंत मैं regex
जो लाइनों से उन अनावश्यक जानकारी को हटा के साथ समाप्त हो गया पर आप
अद्यतन
धन्यवाद, यूनिक्स sed
उपयोगिता के साथ इसे चलाने के लिए, मैं MinGW
से Windows संस्करण मिला है।
sed "s/^\(+++\|---\)\(.*\)\(\.[A-Za-z0-9]\{1,4\}\)\(.*\)$/\1\2\3/" C:\patch.diff > C:\patch.new
patch.diff
patch.new
दीवार से सिर की पिटाई के घंटे के बाद patch
उपयोगिता
साथ सही एकीकृत diff फ़ाइल और संगत है UPDATE2
विकृत tfs
से और उत्पादन पर उत्पन्न फ़ाइल है , मुझे पता चला कि tfs
से उत्पन्न diff फ़ाइलों में यूनिकोड विस्तारित वर्ण आसानी से बच गए हैं या इसके बंद होने के साथ प्रतिस्थापित हैं टी ASCII प्रतिनिधित्व।
तो उदाहरण के लिए, यदि कोड ä
अक्षर है, आउटपुट diff फ़ाइल में इसे एक साधारण a
पत्र द्वारा प्रतिस्थापित किया जाएगा।
यह tfs
उपयोगिता, बेकार से उत्पन्न diff फ़ाइलों को बनाता है।
यह एक बग स्पष्ट रूप से है।
FYI करें : मैं VS2010 और टीम फाउंडेशन सर्वर 2010
क्या आप दो diff -u' के साथ दो फ़ाइलों की तुलना कर सकते हैं और फिर diffs diff? –
असल में मुझे आपका प्रश्न नहीं मिला, माफ करना – matsoor
अंत में मैं रेगेक्स के साथ समाप्त हुआ जो लाइनों से उन अनावश्यक जानकारी को हटा देता है, इसे यूनिक्स कमांड 'sed' के साथ चलाता है, मुझे मिनीजीडब्ल्यू से विंडोज संस्करण मिला। 'sed" s/^ \ (+++ \ | --- \) \ (। * \) \ (\। [ए-ज़ा-जे 0-9] \ {1,4 \} \) \ (। * \) $/\ 1 \ 2 \ 3/"सी: \ patch.diff> सी: \ patch.new' यहां 'patch.diff' विकृत फ़ाइल है और ouput' patch.new' पर सही फ़ाइल है और इसके साथ संगत है 'पैच' उपयोगिता – matsoor