2010-09-14 9 views
53

मुझे पता है कि मुझे अपनी खुद की एक शाखा पर काम करना चाहिए लेकिन हम में से कुछ एक परियोजना की एक ही शाखा में हैं। देवों में से एक ने प्रतिबद्ध किया और मैं सिर्फ अपनी स्थानीय प्रति को एसवीएन से नवीनतम अपडेट करना चाहता था। चल रहा है 'SVN अद्यतन' मैं इस उत्पादन प्राप्त करें:क्या एसवीएन से अपडेट करते समय स्थानीय परिवर्तनों को हमेशा (बल) ओवरराइट करना संभव है? संघर्षों को नजरअंदाज करें?

Restored 'index.html' 
U somescript.php 
Conflict discovered in file.xml'. 
Select: (p) postpone, (df) diff-full, (e) edit, 
     (mc) mine-conflict, (tc) theirs-conflict, 
     (s) show all options: 

वहाँ एक विकल्प/जिस तरह से अपने स्थानीय परिवर्तनों को अधिलेखित और तोड़फोड़ से नवीनतम फ़ाइल (रों) मिलता है और सभी संघर्ष की अनदेखी करने के है?

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

संपादित करें:

(रों) दिखाने के सभी विकल्प: रों

(e) edit    - change merged file in an editor 
    (df) diff-full  - show all changes made to merged file 
    (r) resolved   - accept merged version of file 

    (dc) display-conflict - show all conflicts (ignoring merged version) 
    (mc) mine-conflict - accept my version for all conflicts (same) 
    (tc) theirs-conflict - accept their version for all conflicts (same) 

    (mf) mine-full  - accept my version of entire file (even non-conflicts) 
    (tf) theirs-full  - accept their version of entire file (same) 

    (p) postpone   - mark the conflict to be resolved later 
    (l) launch   - launch external tool to resolve conflict 
    (s) show all   - show this list 

मुझे लगता है मैं विकल्प के साथ जाना चाहिए 'टीसी

तो मैं s' शो सभी विकल्प 'का चयन '?

+0

आप क्यों चाहते हो जाएगा और: लेकिन आप अपने स्थानीय फ़ाइलों अपनी परियोजना की जड़ से निम्न कमांड चलाकर ओवरराइड कर सकते हैं यह करने के लिए? एक विलय करें और आप अपने परिवर्तनों को खो देंगे नहीं। अन्यथा 'svn revert' करें और फिर' svn up' करें। – halfdan

+0

बिंदु यह है कि मुझे अपने परिवर्तनों की आवश्यकता नहीं है और वह फ़ाइल के लिए नवीनतम संस्करण प्राप्त करना चाहता था और मेरे परिवर्तनों को ओवरराइट करना चाहता था –

+0

आप फ़ाइल को क्यों हटा नहीं सकते हैं और हाल ही में अपडेट करके अपडेट कर रहे हैं? :) – Select0r

उत्तर

65

तुम सच में प्रमुख की एक प्रति (रेपोस में नवीनतम संशोधन) चाहते हैं, तो आप

svn revert -R <path> // discard all your changes inside path (recursive) 
svn update   // get latest revision of all files (recursive) 

चाहिए यह है कि।

सावधान रहें कि आप अपने अंतिम 'प्रतिबद्ध' के बाद से अपने सभी परिवर्तन खो देंगे।

संपादित करें: पूर्णता के लिए के लिए Isu_guy answer से -R <path> जोड़ा गया है और पाठकों की मदद करने के लिए एक एकल पूर्ण जवाब खोजने

+0

विचलित फ़ाइलों को हटाया नहीं गया है। यहां भी देखें: [क्या वर्किंग कॉपी रीसेट करने के लिए कोई सबवर्सन कमांड है?] (Http://stackoverflow.com/a/6204618/1996150) –

27

tato का जवाब बिल्कुल सही है और उसका सावधानी ध्यान दें। आप अपने सभी परिवर्तन खो देंगे। सिंटैक्स पर कुछ स्पष्टीकरण और कुछ बारीकियों

svn वापस डिफ़ॉल्ट रूप से गैर-पुनरावर्ती है और काम करने के लिए पथ की आवश्यकता है। बनाने के लिए रिकर्सिव "-R" जोड़ें। आप वर्तमान निर्देशिका उपयोग "./" "पथ" के लिए नीचे में हैं या "/ path_to_your_folder" की तरह एक पूर्ण पथ का उपयोग करते हैं

svn revert -R <path> 

SVN अद्यतन पुनरावर्ती है। आप निर्देशिका में हैं, तो आप सभी

svn update 
22

क्षमा करें पर एक पथ की जरूरत नहीं है, मुझे पता है यह एक काफी पुराने पोस्ट है, लेकिन बजाय दो आपरेशन, मैं यह कर चाहते हैं:

svn up --accept tf 

उसने कहा, "svn revert -R" फिर आपकी कार्यशील प्रतिलिपि की रूट पर "svn up" चाल भी करेगा। मेरे मामले में, मेरे पास विभिन्न परियोजनाओं के लिए कई डब्ल्यूसी हैं, इसलिए मैं एक शेल स्क्रिप्ट चलाता हूं जो मेरे कंप्यूटर को शुरू करते समय उन सभी को अद्यतन करता है। मैं स्वीकृति का उपयोग नहीं करता, बल्कि मैं संकल्प को स्थगित करने के लिए "--accept p" का उपयोग करता हूं क्योंकि यह एक स्वचालित प्रक्रिया है, इसलिए मैं किसी भी विवाद को विलय करता हूं कि एसवीएन स्वचालित रूप से अपने आप में विलय नहीं कर सकता है (आमतौर पर, इसमें वापस आना शामिल है, लेकिन यह निर्भर करता है)।

+0

यह कमांड काम नहीं कर रहा है, यह खराब पैरामीटर बता रहा है। – arvindwill

+0

अजीब - एसवीएन क्लाइंट/संस्करण विशिष्ट हो सकता है। मैं Win7 पर TortoiseSVN का वर्तमान संस्करण चला रहा हूं, हालांकि यह आदेश हमारे CentOS सर्वर पर भी एसवीएन सर्वर पर काम करता है। – Carnix

+0

जैसा आंद्रेई नीचे उल्लिखित है, svn up - स्वीकार करें – Raghav

14

svn 1.6.11 का उपयोग करना (जैसा कि CentOS 6 द्वारा भेजा गया है।4) Carnix के आदेश (नहीं कर सकते एक टिप्पणी जोड़ने के बाद से मैं काफी प्रतिष्ठा नहीं है)

2

तरह

svn up --accept theirs-full 

दिखना चाहिए अपने पहले प्रश्न का उत्तर देना। नहीं

svn revert -R . 
svn update 

यह SVN 1.7.19 के साथ पर मेरे मैक काम किया ubuntu SVN के साथ 1.8.8

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