2008-09-18 7 views
11

मेरे उपवर्तन भंडार में फ़ाइल A.txt के 4 संस्करण हैं, कहें: A.txt.r1, A.txt.r2, A.txt.r3 और A.txt.r4। फ़ाइल की मेरी कामकाजी प्रति आर 4 है और मैं वापस आर 2 पर स्विच करना चाहता हूं। मैं "svn अद्यतन -r 2 A.txt" का उपयोग नहीं करना चाहता क्योंकि यह आर 2, अर्थात् आर 3 और आर 4 के बाद सभी संशोधन हटा देगा।इसके बाद के संशोधन को हटाने के बिना फ़ाइल के पिछले संस्करण पर वापस कैसे स्विच करें?

तो क्या कोई तरीका है कि मैं अपनी कामकाजी प्रति को आर 2 में अपडेट करता हूं और फिर भी बाद में आर 3 और आर 4 पर स्विच करने का विकल्प होता है? इसे एक और तरीका दें, मैं अपडेट करने के बाद भी "svn log A.txt" का उपयोग करके सभी 4 संशोधन देख सकता हूं।

उत्तर

3

मुझे सबवर्सन के साथ बहुत अधिक अनुभव नहीं है इसलिए कृपया मुझे क्षमा करें यदि यह विधि इस माहौल में काम नहीं करती है।r2 इस मामले में सवाल में फ़ाइल r4

  • संशोधन की आवश्यकता के साथ फ़ाइल के अपने स्थानीय प्रतिलिपि को अधिलेखित के रूप में संपादन के लिए तैयार

    1. चेक आउट,:

      इस स्थिति में मैं इन चरणों का पालन

    2. चेक इन/

    इस तरह एक उचित टिप्पणी के साथ इस " नई " R5 के रूप में फ़ाइल के संशोधन के लिए प्रतिबद्ध है जब आप y के माध्यम से जाना

    • r1
    • r2
    • R3
    • r4
    • R5: हमारे फ़ाइल इतिहास आप की तरह कुछ देखेंगे (टिप्पणी: "r2 सामग्री पर वापिस कर दिए")
  • 2

    पुराने संशोधन में अपडेट करने से आपके नए संशोधन नहीं हट जाएंगे।

    ताकि आप svn up -r2 file कर सकें, फिर svn up -r4 file

    भी, आप इस तरह से r2 फ़ाइल को करने में सक्षम नहीं होंगे, क्योंकि आपको इसे करने से पहले अपडेट करना होगा, और आप फिर से r4 के साथ समाप्त हो जाएंगे।

    2

    "मैं" svn update -r 2 a.txt "का उपयोग नहीं करना चाहता हूं क्योंकि यह आर 2, अर्थात् आर 3 और आर 4 के बाद सभी संशोधन हटा देगा।"

    उह ... वास्तव में, यह नहीं होगा। इसे आज़माएं: -आर 2 के बाद एक नियमित svn अद्यतन करें और आप कार्यशील प्रति को r4 पर अपडेट कर देखेंगे।

    +0

    हाँ, आप सही हैं! – Martin08

    1

    अद्यतन सर्वर पर कोई संशोधन नहीं हटाएगा। केवल परिवर्तन यह बनाता है अपने स्थानीय काम कर प्रतिलिपि करने के लिए कर रहे हैं:

    SVN Update Command

    "--revision द्वारा दिए गए संशोधन के लिए काम कर प्रतिलिपि सिंक्रनाइज़ करता है" अपने काम कॉपी में रिपोजिटरी से परिवर्तन लाता है " स्विच करें "

    10

    आदेश svn up -r 4 केवल आपके स्थानीय को संशोधित करने के लिए प्रतिलिपि अद्यतन करता है 4.

    सर्वर के पास अभी भी सभी संस्करण 1 है जो भी हो।

    आप क्या करना चाहते क्या, बनाने के एक नई संशोधन, संशोधन संख्या 5 है, जो संशोधन संख्या 2.

    cd /repo 
    svn up -r 2 
    cp /repo/file /tmp/file_2 
    svn up -r 4 
    cp /tmp/file_2 /repo/file 
    svn commit -m "Making 5 from 2" 
    

    के समान है आप कभी भी अपना इरादा बदलते हुए 4 वापस चाहते हैं, आप कर सकते हैं संशोधन 4 से संशोधन 6 बनाकर ऐसा करें।

    cd /repo 
    svn up -r 4 
    cp /repo/file /tmp/file_4 
    svn up -r 5 
    cp /tmp/file_4 /repo/file 
    svn commit -m "Making 6 from 4" 
    

    हैप्पी हैकिंग।

    (वहाँ निश्चित रूप से केवल 2 आदेशों मुझे विश्वास में ऊपर करने के लिए एक रास्ता है, लेकिन जब से मैंने किया अपने समय हो गया है और यह एक छोटे से भ्रामक हो सकते हैं)

    26

    एक के नए संस्करण के बनाने के लिए .txt कि संशोधन 2 के बराबर है:

    svn up -r HEAD 
    svn merge -r HEAD:2 A.txt 
    svn commit 
    

    इसके अलावा Undoing changes में विवरण देखें।

    3
    svn update -r 2 A.txt 
    

    यह आदेश नहीं भंडार में किसी भी संस्करण को हटा देंगे। यह a.txt के अपने काम कर प्रति संशोधन 2. होने के लिए आप क्या कर रहे

    > svn status -u A.txt 
        *  2 A.txt 
    

    इस आदेश शो है कि आप संस्करण 2 देख रहे हैं के उत्पादन से यह देख सकते सेट हो जाएगा, और अद्यतन (देखते हैं कि है कि *)।

    इस अद्यतन करने के बाद, आप अभी भी "SVN लॉग" करते हैं और सभी संशोधन को देखने के लिए सक्षम हो जाएगा।

    प्रदर्शन "svn अद्यतन ए।txt "आपको नवीनतम संस्करण (आपके मामले में, आर 4) पर वापस कर देगा।

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