svn - क्या एसवीएन से अपडेट करते समय स्थानीय परिवर्तनों को हमेशा(बल) ओवरराइट करना संभव है? संघर्षों को नजरअंदाज करें?




command-line conflict (4)

Svn 1.6.11 का उपयोग करना (जैसा कि CentOS 6.4 द्वारा भेजा गया है) कार्निक्स का आदेश दिखना चाहिए

svn up --accept theirs-full

(कोई टिप्पणी नहीं जोड़ सकता क्योंकि मेरे पास पर्याप्त प्रतिष्ठा नहीं है)

मुझे पता है कि मुझे अपनी खुद की एक शाखा पर काम करना चाहिए, लेकिन हम में से कुछ एक परियोजना की एक ही शाखा में हैं। देवों में से एक ने प्रतिबद्ध किया और मैं सिर्फ अपनी स्थानीय प्रति को एसवीएन से नवीनतम अपडेट करना चाहता था। 'Svn update' चल रहा है मुझे यह आउटपुट मिलता है:

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

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


अपने पहले सवाल का जवाब। नहीं लेकिन आप अपनी प्रोजेक्ट की जड़ से निम्नलिखित कमांड चलाकर अपनी स्थानीय फाइलों को ओवरराइड कर सकते हैं:

svn revert -R .
svn update

यह मेरे मैक पर svn 1.7.19 और svub 1.8.8 के साथ ubuntu के साथ काम किया


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

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

svn revert -R <path>

svn अद्यतन रिकर्सिव है। यदि आप निर्देशिका में हैं तो आपको किसी पथ की आवश्यकता नहीं है

svn update

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

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

बस।

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

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





conflict