2009-05-01 9 views
9

मेरे कुछ बदलाव हैं जो कुछ मेरे एसवीएन भंडार में वापस आते हैं। मान लें कि हेड आर 750 पर है और मैं r746-r750 खोने के बिना r745 को वापस करना चाहता हूं। क्या यह संभव है?svn में, क्या मैं एक बदलाव वापस कर सकता हूं और इसे बाद में शेल्फ कर सकता हूं?

और, क्या मैं किसी भी तरह से r745 को सहेज सकता हूं और बाद में इसे फिर से लागू कर सकता हूं (एक नया संशोधन के रूप में)?

उत्तर

17

जाना चाहिए तुम्हें एक साफ पीछे की ओर विलय, आप ऐसा कर सकता है मिलता है ...

svn merge -r 745:744 <source> 

तो फिर तुम यह फिर से लागू करना चाहते हैं, आप इसे वापस मर्ज अग्रेषित कर सकते हैं में:

svn merge --ignore-ancestry -r 744:745 <source> 

अधिक जानकारी के लिए, "Common Use-Cases for Merging" देखें।

+0

मैंने इसे '--ignore-ancestry' के बिना कई बार कोशिश की है। svn किसी भी बदलाव को मर्ज नहीं करता है क्योंकि वे एक ही फ़ोल्डर में हैं। अब यह काम किया, उस संकेत के लिए धन्यवाद! – donmarkusi

2

हां, यह निश्चित रूप से संभव है।

जब आप कोई परिवर्तन वापस करते हैं, तो यह अभी भी भंडार में एक नया संशोधन बनाता है। तो आप ऐसा कुछ करेंगे:

1) वर्तमान प्रति r750 देखें।

2)svn merge -r का उपयोग कर कार्य प्रतिलिपि पर एक वापसी निर्दिष्ट करें। आपकी कार्यशील प्रति में पुराने संस्करण में विलय हो जाएगा।

3) कार्यशील प्रति में r751 के रूप में जांचें।

अब आपके इतिहास में दो संशोधन होंगे। नया एक (आर 751) जिसमें आर 745 शामिल नहीं है, क्योंकि आपने इसे वापस घुमाया है। लेकिन यदि आप कभी भी इसे फिर से लागू करना चाहते हैं तो r745 अभी भी वहां होगा। आप बस r745 की एक प्रति देख सकते हैं, इसे अपनी कार्यशील प्रतिलिपि में विलय कर सकते हैं, और इसे वापस जांच सकते हैं (r752 के रूप में कहें)।