क्या एसवीएन संघर्षों को सूचीबद्ध करने के लिए एक कमांड है?


116

क्या कोई एसवीएन कमांड को रेपो और काम करने वाली कॉपी के बीच वर्तमान संघर्षों को सूचीबद्ध करने के लिए जानता है?

धन्यवाद

जवाबों:


168

लिनक्स पर, यदि आप केवल संघर्ष देखना चाहते हैं, तो grep के माध्यम से स्थिति को पाइप करें।

svn status | grep -P '^(?=.{0,6}C)'

6
-A 1Grep तर्कों में जोड़ने से आपको संघर्ष रेखा के बाद की रेखा दिखाई देगी, जो कभी-कभी संघर्ष से संबंधित होती है।
वेस्ले हार्टफोर्ड

4
-P ने grep को perl regex, ^ = start of string, (? =) का उपयोग करने के लिए कहा है , जो लुकहेड पैटर्न को बताता है। {0,6} किसी भी 0 से 6 अक्षर और अक्षर C, जो संघर्षों का सूचक है
Pete

5
लुकहेड भाग का उपयोग करने की बात क्या है? के '^.{0,6}C'रूप में अच्छी तरह से काम नहीं कर सका ?
hans_meine

2
OSX पर इसी कमांड का उपयोग करने के लिए, आपको GNU grep को स्थापित करने की आवश्यकता है क्योंकि BSD grep में पर्ल
रेग्ज

4
विंडोज पर इसका (svn status) -Match '^(?=.{0,6}C)'
पॉवर्सशेल वर्जन

28

बस grep का उपयोग करें!

svn st | grep '^C'

2
@sid, यह 'के साथ शुरू होता है' के लिए regexp है, तो इसका मतलब है कि पहला चरित्र एक सी है
जोसेफ वास

1
मैं सोच रहा था कि क्या यह उन फाइलों को याद कर सकता है जिनकी "ए + सी" स्थिति है .. क्या यह एक मुद्दा है ..
राघव

2
egrep '^ [AC +] +' तब चाल करेगा, हालांकि मेरे पास आमतौर पर A + C समस्याएँ नहीं होती हैं।
जोसेफ वासना

1
ध्यान में रखना सरल है, और अधिकांश मामलों के लिए पर्याप्त है। धन्यवाद @JosephLust
csonuryilmaz

11

आप कोशिश कर सकते हैं svn merge -r <revision> --dry-runऔर देख सकते हैं कि क्या होता है।


विंडोज पर svn 1.7.8 के साथ काम करना प्रतीत नहीं होता है। त्रुटि लॉग: svn: E205001: अधिक जानकारी के लिए 'svn मदद' का प्रयास करें svn: E205001: मर्ज स्रोत की आवश्यकता
kakyo



3

यदि आप पहले ही विलय कर चुके हैं तो आप उपयोग कर सकते हैं

svn status

और संघर्ष के लिए एक अपरकेस "सी" देखें, लेकिन आमतौर पर आपको अपनी कार्यशील प्रतिलिपि में इस तरह का नहीं देखना चाहिए।


1

svn merge --dryrunआपके द्वारा अपडेट किए गए नवीनतम के बाद सभी संशोधनों के साथ रिपॉजिटरी URL निर्दिष्ट करते समय इसका उपयोग करना संभव है ।

उदाहरण के लिए यदि आपका वर्तमान WC संशोधन 147 पर आधारित है तो यह कर सकता है:

svn merge -r 148:HEAD http://url.to.repo/repo/

यह कुछ भी नहीं है जो मैंने खुद से किया है, इसलिए आपको इसे स्वयं ही आजमाना होगा।


0

यदि आपने मर्ज या अपडेट की गई फ़ाइलों को नहीं जोड़ा है तो नीचे कमांड का उपयोग करें

svn status --show-updates | grep -P '.*(?=.*M)(?=.*\*).*'

छोटे के लिए

svn st -u | grep -P '.*(?=.*M)(?=.*\*).*'

विवरण
SVN संघर्ष (C) स्थिति को तब तक चिह्नित नहीं करता है जब तक कि आप फ़ाइल (एस) का उपयोग करके अपडेट नहीं करते हैं svn update
तब तक की स्थिति नीचे की तरह दिखाई जाती है

+---+------+---------------+---------------+
| M |      |               | 23246   file1 |
+---+------+---------------+---------------+
|   |      | *             | 23233   file2 |
+---+------+---------------+---------------+
| M |    * | 23233   file3 |               |
+---+------+---------------+---------------+

एम - स्थानीय में संशोधित
* - अपडेट / दूरस्थ
एम से आने वाली और * - स्थानीय में संशोधित, साथ ही दूरदराज में - यह एक संघर्ष है लेकिन svn अभी तक चिह्नित नहीं है


-2

मैक पर

$ svn status | grep -e '^!'

काम किया

यहाँ grep के लिए आदमी है:

उपयोग: grep [-abcDEFGHhiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C [num]] [-e pattern] [-f file] [--binary-files = value] [--color = when] [--context [= num]] [--directories = action] [--label] [--line-बफर] [--null] [पैटर्न] [फ़ाइल ...]


विवादित वस्तुओं को खोजने में मदद करने के लिए एक विस्मयादिबोधक चिह्न का मिलान कैसे होता है?
औरदम

^!के साथ शुरू होता है कि हर लाइन के लिए regex है !। सभी विवादित पंक्तियों की शुरुआत!
thesummersign

2
नहीं, मैंने सिर्फ 1.9 रेपो पर विवादों को सुलझाया और संघर्ष लाइनें सिर्फ "सी" से शुरू हो रही थीं।
औरदम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.