TortoiseSVN का उपयोग करते हुए मैं ट्रंक से शाखा और इसके विपरीत परिवर्तन को कैसे मर्ज करता हूं?


132

मैं तोड़फोड़ पर पढ़ रहा हूं / तोड़फोड़ के साथ विलय कर रहा हूं 1.5 और तोड़फोड़ पुस्तक के साथ उत्कृष्ट और मुफ्त संस्करण नियंत्रण का उपयोग कर रहा हूं । मुझे लगता है कि मुझे समझ में आता है कि मुझे उन कार्यों को करने के लिए सबवर्सन कमांड लाइन क्लाइंट का उपयोग कैसे करना है जो मुझे सबसे अधिक बार चाहिए, जो हैं:

ट्रंक से परिवर्तन के साथ अद्यतन शाखा

शाखा की वर्किंग डाइरेक्टरी रन से:

svn मर्ज http://svn.myurl.com/proj/trunk

ट्रंक में मर्ज शाखा

ट्रंक की वर्किंग डाइरेक्टरी रन से:

svn मर्ज --reingrgrate http://svn.myurl.com/proj/branches/mybranch

हालाँकि, हम TortoiseSVN 1.5 को हमारे इंटरफ़ेस में तोड़फोड़ के रूप में उपयोग कर रहे हैं। मैं यह जानना चाहूंगा कि इन ऑपरेशनों को TortoiseSVN के साथ कैसे करना सबसे अच्छा है। नया संवाद मुख्य मेनू पर तीन अलग-अलग विकल्प प्रदान करता है।

  1. संशोधन की एक श्रृंखला मर्ज करें
  2. एक शाखा को फिर से संगठित करें
  3. दो अलग-अलग पेड़ों को मिलाएं

मैं जो इकट्ठा कर सकता हूं, उससे TortoiseSVN हमेशा निम्नलिखित सिंटैक्स के साथ svn निष्पादित करता है।

svn मर्ज [--dry-run] --force From_URL @ revN To_URL @ RevM PATH

इसके अतिरिक्त, एक शाखा को फिर से स्थापित करना एक संदेश के साथ अक्सर विफल होता है जिसमें कहा गया है कि कुछ लक्ष्यों को विलय नहीं किया गया है और इसलिए यह जारी नहीं रह सकता है, और इसलिए मुझे विकल्प # 3 का उपयोग करना पड़ा।

मेरे प्रश्न हैं:

  1. ट्रंक से शाखा में परिवर्तन को मर्ज करने के लिए मैं TortoiseSVN 1.5 का उपयोग कैसे करूं?
  2. पुनरावर्ती विधि के साथ और बिना शाखा को ट्रंक में मर्ज करने के लिए मैं TortoiseSVN 1.5 का उपयोग कैसे करूं?
  3. उपरोक्त विकल्पों में से कौन सा मुझे प्रत्येक के लिए उपयोग करना चाहिए और क्यों?

संपादित करें

"ड्राई रन" परीक्षण के माध्यम से मैंने पाया है कि कमांड लाइन सबवर्सन ऑपरेशन

svn मर्ज http://svn.myurl.com/proj/trunk

TortoiseSVN में विकल्प # 1 (मर्ज की एक सीमा को मिलाएं) के अनुरूप है, जब तक कि मैं संशोधन सीमा को खाली छोड़ देता हूं।


लिंक नहीं मिले! = /
लियोनार्डो कोस्टा

जवाबों:


28

व्यवहार इस बात पर निर्भर करता है कि आपके भंडार का कौन सा संस्करण है। तोड़फोड़ 1.5 मर्ज के 4 प्रकार की अनुमति देता है:

  1. मर्ज sourceURL1 [@N] sourceURL2 [@M] [WCPATH]
  2. मर्ज sourceWCPATH1 @ N sourceWCPATH2 @ M [WCPATH]
  3. मर्ज [-c M [, N ...] | -आर एन: एम ...] स्रोत [@REV] [WCPATH]
  4. मर्ज - संक्षिप्त स्रोत [@REV] [WCPATH]

1.5 से पहले तोड़फोड़ ने केवल पहले 2 प्रारूपों की अनुमति दी।

तकनीकी रूप से आप पहले दो तरीकों के साथ सभी मर्ज कर सकते हैं, लेकिन अंतिम दो सबवेक्शन 1.5 के मर्ज ट्रैकिंग को सक्षम करते हैं।

TortoiseSVN के विकल्प किसी श्रेणी या संशोधन मानचित्रों को विधि 3 में तब मिलाते हैं जब आपकी रिपॉजिटरी 1.5+ होती है या आपकी रिपॉजिटरी पुरानी होने पर उसे विधि में बदल देती है।

जब रिलीज़ / रखरखाव शाखा में सुविधाओं को मर्ज किया जाता है, तो आपको 'संशोधन की एक सीमा मिलाएं' आदेश का उपयोग करना चाहिए।

केवल जब आप किसी शाखा की सभी विशेषताओं को मूल शाखा में वापस मिलाना चाहते हैं (आमतौर पर ट्रंक) तो आपको 'एक शाखा को फिर से संगठित करना' का उपयोग करना चाहिए।

और अंतिम कमांड -मगर दो अलग-अलग पेड़-केवल तब उपयोगी होते हैं जब आप सामान्य ब्रंचिंग व्यवहार के बाहर कदम रखना चाहते हैं। (उदा। अलग-अलग रिलीज़ की तुलना करना और फिर भिन्न को किसी अन्य शाखा में विलय करना)


कृपया कोई मुझे stackoverflow.com/questions/51657636/… के साथ मदद कर सकता है । यह हमारी टीम के लिए एक महत्वपूर्ण सवाल है, हमें इसके आसपास कुछ विचारों की आवश्यकता है।
अंकुर

249

मैं अन्य उत्तरों का ठीक से पालन नहीं कर सका, यहाँ एक डमी गाइड है ...

आप इसे जाने के लिए trunk -> branchया तो रास्ते पर कर सकते हैं या branch -> trunk। मैं हमेशा पहले trunk -> branchवहाँ किसी भी संघर्ष को ठीक करता हूँ और फिर विलीन हो जाता हूँ branch -> trunk

एक शाखा / टैग में ट्रंक मिलाएं

  1. शाखा / टैग की जाँच करें
  2. शाखा की जड़ पर राइट क्लिक करें | कछुआ SVN | मर्ज करें ...
  3. मर्ज प्रकार: संशोधन की एक श्रृंखला मर्ज करें | अगला पर क्लिक करें' यहाँ छवि विवरण दर्ज करें
  4. मर्ज पुनरीक्षण रेंज: ट्रंक निर्देशिका के उस URL का चयन करें जिसे आपने शाखा / टैग में कॉपी किया है। विलय करने के लिए संशोधन दर्ज करें या सभी संशोधनों को मर्ज करने के लिए फ़ील्ड को खाली छोड़ दें | अगला पर क्लिक करें' यहाँ छवि विवरण दर्ज करें
  5. मर्ज विकल्प: मैंने इन्हें डिफ़ॉल्ट के रूप में छोड़ दिया है | 'मर्ज' पर क्लिक करें यहाँ छवि विवरण दर्ज करें
  6. यह संशोधित चेकों को शाखा / टैग में मर्ज कर देगा
  7. फिर शाखा / टैग में मर्ज किए गए परिवर्तन करें

4
मैंने "संशोधन रेंज को मर्ज करने के लिए" छोड़ दिया और "टेस्ट मर्ज" किया। यह वही था जिसकी मुझे आवश्यकता थी: मेरे लिए सीमा स्वचालित रूप से निर्धारित की गई थी (जब शाखा में अंतिम संशोधन किया गया था)
लियान

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

@ लियान ने मैंने वही किया जो ट्रंक से शाखा में विलय हो गया; यदि आप ट्रंक से फ़ाइलों के नवीनतम संस्करण को शाखा फ़ाइलों के साथ मर्ज करना चाहते हैं, तो संशोधन रेंज को खाली छोड़ दें।
विंगर

2
Tortoise SVN के वर्तमान संस्करण में अब चरण 4 में रिविजन रेंज को खाली छोड़ने के बजाय सभी संशोधनों को मर्ज करने का एक विकल्प है।
अज्ञात देव

1
@Onkar कुछ संघर्ष लगभग हमेशा होंगे। आप दो शाखाओं, जैसे मिल गया है, तो trunkऔर branch, तो सुनिश्चित करें कि आप से किसी भी परिवर्तन मर्ज बनाने trunkके लिए branchजितनी जल्दी हो सके जहां तक संभव हो टकराव से बचने होगा। इसका मतलब यह होगा कि जब आप मर्ज branchकरने के लिए trunkवहाँ कोई विरोध नहीं होना चाहिए।
icc97

12

आपको "संशोधन की एक श्रृंखला को मर्ज" करना चाहिए।

ट्रंक से एक शाखा में परिवर्तनों को मर्ज करने के लिए, शाखा के अंदर काम करने वाली कॉपी "संशोधनों की मर्ज श्रेणी" का चयन करती है और ट्रंक URL और विलय के लिए प्रारंभ और समाप्ति संशोधन दर्ज करें।

ट्रंक में एक शाखा को विलय करने के विपरीत तरीके से समान।

--Reingrgrate ध्वज के बारे में, यहाँ मैनुअल देखें: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html#tsvn-dug-merge-reintegrate


1

Svnmerge.py पर एक नज़र डालें । यह कमांड-लाइन है, इसे TortoiseSVN द्वारा लागू नहीं किया जा सकता है, लेकिन यह अधिक शक्तिशाली है। से पूछे जाने वाले प्रश्न :

पारंपरिक तोड़फोड़ आपको परिवर्तनों को मर्ज करने देगा, लेकिन यह "याद नहीं" करता है कि आपने पहले से क्या विलय किया है। यह परिवर्तन सेट को मर्ज किए जाने से बाहर करने के लिए एक सुविधाजनक तरीका प्रदान नहीं करता है। svnmerge.py कुछ काम को स्वचालित करता है, और इसे सरल करता है। Svnmerge उन सभी चीज़ों से लॉग मैसेज के साथ एक कमिट मैसेज भी बनाता है जिसे उसने मर्ज किया था।


6
सबवर्सन 1.4 और इससे पहले के svnmerge.py को विकसित किया गया था। तोड़फोड़ 1.5 ने कोर उत्पाद में मर्ज ट्रैकिंग शुरू की।
बर्ट हूजेबेन

0

Shift-Right फ़ोल्डर पर क्लिक करें और TortoiseSVN -> मर्ज ऑल का चयन करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.