2012-05-23 14 views
6

में एक शाखा से एक शाखा के रूप में एक शाखा के रूप में एक अंतर लागू करें हमारे पास एक परियोजना है जिसमें हम संस्करण 6.1 के लिए शाखा में कुछ काम कर रहे हैं। 6.1 शाखा (चेंजसेट 1800) में किए गए परिवर्तनों में से एक बगफिक्स था, और किसी ने फैसला किया कि यह हमारे 6.0 उत्पादन रिलीज में पैच की योग्यता के लिए पर्याप्त जरूरी है।विजुअल स्टूडियो टीएफएस

अब, 1800 में बदलाव से पहले और उसके बाद दोनों प्रश्नों में फ़ाइल में परिवर्तन किए गए थे। वे चाहते हैं कि पैच को 6.0 पर लागू किया जाए।

प्रति http://linux.die.net/man/1/patch के रूप में, ऐसा लगता है कि ऐसा करने के लिए सबसे अच्छी बात होगा 1799 को changeset 1800 की तुलना द्वारा एक diff फ़ाइल बनाते हैं और फिर 6.0 करने के लिए एक पैच के रूप में है कि diff फ़ाइल लागू होते हैं। मुझे यह भी नहीं पता कि टीएफएस में ऐसा कहां करना है।

फ़ॉलबैक योजना के रूप में, मैं हमेशा हाथ से 1800 में बदलावों में अंतर डाल सकता हूं और इसे पैच करने के लिए उत्पादन के नवीनतम संस्करण में कॉपी कर सकता हूं, लेकिन यदि संभव हो तो मैं इसे ठीक से करना चाहूंगा।

एक तरफ: मैं समझता हूँ कि सिर्फ एक diff लगाने से, आप तथ्य यह है कि 1799> 1800 diff में शामिल कोड के कुछ कोड है कि केवल वर्तमान उत्पादन संस्करण और changeset 1799 के बीच स्थापित किया गया था पर निर्भर करता है जोखिम, लेकिन diff पैच लागू होने के बाद उत्पादन को जल्दी से निर्माण और परीक्षण करके आसानी से सत्यापित किया जा सकता है। हम इसके बारे में चिंतित नहीं हैं।

+0

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

उत्तर

9

ठीक है, मुझे यकीन है कि मैं पूरी तरह से समझ नहीं हूँ, लेकिन यहाँ यह है:

TFS में ChangeSet एक फ़ाइल का पूर्ण सामग्री को एकत्र नहीं है, लेकिन अंतर (पंक्तियां जोड़ी, नष्ट कर दिया, परिवर्तित)।

यदि आप संस्करण 6.1 से 6.0 तक अपने बग फिक्स की रिपोर्ट करना चाहते हैं और यह फ़िक्स परिवर्तन 1800 (और इस फ़िक्स से अधिक कुछ नहीं) में शामिल है, तो बस दिए गए परिवर्तन को संस्करण 6.0 में मर्ज करें। परिवर्तन 1800 से पहले किए गए सभी परिवर्तन 6.0 में विलय नहीं किए जाएंगे, केवल इस परिवर्तन में आपने जो किया वह विलय हो जाएगा। गंतव्य एक करने के लिए स्रोत से एक का चयन किया changeset मर्ज

  1. सभी स्रोत शाखा से गंतव्य एक
  2. में परिवर्तन मर्ज:

    आपके पास दो विकल्प जब आप किसी मर्ज करते हैं।

दूसरे का उपयोग करें और परिवर्तन 1800 निर्दिष्ट करें और आप ठीक होंगे।

कुछ तस्वीरें:

enter image description here

enter image description here

केवल changeset चयनित मर्ज किया जाएगा।

+0

जब मैं विलय> चयनित परिवर्तन>> और फिर "1800" का चयन करता हूं, तो यह सबकुछ * * 1800 तक * को मर्ज करने का प्रयास करता है।क्या आपने सत्यापित किया है कि इस सुविधा का उपयोग करके 1799 और 1800 के बीच किए गए परिवर्तनों को मर्ज करने का एक और तरीका है? – Alain

+0

यदि मैं सही प्रश्न को समझता हूं, तो 6.0 शाखा में कुछ भी नहीं है जो 6.1 में से संबंधित नहीं है? यदि ऐसा है, तो 6.0 से 6.1 _prior to_ तक एक पूर्ण विलय वास्तविक परिवर्तन विलय में मदद कर सकता है। __And__ यह केवल टीएफएस 2010 से है कि परिवर्तनों में केवल अंतर होते हैं। इससे पहले, जैसा कि आप कहते हैं, ऐसा विलय करना बहुत मुश्किल हो सकता है। –

+0

मैंने अपना जवाब अपडेट किया, मुझे नहीं पता कि आपने यह कहां पाया था। यह स्क्रीनशॉट के साथ दी गई विधि का उपयोग नहीं कर रहा है, यह केवल चयनित है, मैं आपको गारंटी देता हूं। – Nock

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