क्या svn कमांड एक शाखा पर संशोधित सभी फाइलों को सूचीबद्ध करेगा?


82

Svn में, मेरी एक शाखा है, जिसे 22334 संशोधन के आधार पर बनाया गया था। तब शाखा पर कमिट बनाए गए थे।

मुझे उन सभी फ़ाइलों की सूची कैसे मिलेगी जो ट्रंक पर क्या है की तुलना में शाखा पर बदल दी गई थीं? मैं उन फ़ाइलों को नहीं देखना चाहता जो ट्रंक पर बदल गई थीं जब शाखा बनाई गई थी और "अब"।


मैं अक्सर इस सवाल पर वापस आता हूं और सबसे उपयोगी उत्तर @AndrewMedico से डिलीट किया गया है, svn log:-D के साथ
डैनियल डब्ल्यू।

जवाबों:


84

मुझे लगता है कि यह होगा:

svn diff -r 22334:HEAD --summarize <url of the branch>

2
धन्यवाद। मुझे यह भी नहीं पता था कि मेरी शाखा में क्या संशोधन है, इसलिए मैं svn log <url of the branch> | tailसबसे छोटी संशोधन संख्या प्राप्त करने के लिए करता हूं ।
fikr4n 4

1
सभी परिवर्तनों का सारांश प्राप्त करने के लिए इसे चलाने के बाद, यदि आप अपनी शाखा में किए गए प्रत्येक परिवर्तन की समीक्षा करना चाहते हैं, तो आप इसका उपयोग कर सकते हैं svn diff -r 22334(ध्यान दें कि HEAD के लिए एक अंतर निर्दिष्ट नहीं है)। यह आपकी स्थानीय वर्किंग कॉपी में भिन्न होगा और आपको अपने अलग-अलग एप्लिकेशन में से इसमें बदलाव करने की अनुमति देगा।
चेरनो

43

यदि आप -u विकल्प के साथ स्टेटस कमांड का उपयोग करने की तलाश में हैं, तो आप बदली हुई फ़ाइलों की त्वरित सूची भी प्राप्त कर सकते हैं

svn status -u

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

यहाँ svn कमांड पर एक अच्छा ट्यूटोरियल है जो इन सामान्य परिदृश्यों की बहुत व्याख्या करता है: SVN कमांड संदर्भ


3
svn statusकेवल आपको स्थानीय संशोधन दिखाएंगे। ओपी इस बात की तलाश कर रहा था कि ट्रंक से निर्मित होने के बाद से उनकी शाखा में किए गए सभी फ़ाइल परिवर्तनों को कैसे देखा जाए।
वेबनेस्टो

25

आप निम्न आदेश का उपयोग कर सकते हैं:

svn status -q

Svnbook के अनुसार :

With --quiet (-q), it prints only summary information about locally modified items.

चेतावनी: इस आदेश का उत्पादन केवल आपके संशोधन को दर्शाता है। इसलिए मैं svn upफ़ाइल का नवीनतम संस्करण प्राप्त करने के लिए एक करने का सुझाव देता हूं और फिर svn status -qउन फ़ाइलों को प्राप्त करने के लिए उपयोग करता हूं जिन्हें आपने संशोधित किया है।


छोटा लेकिन मीठा जवाब।
छात्र

@ मस्करीह निर्दोष उत्तर!
गौरव

14

यह केवल संशोधित फ़ाइलों की सूची देगा:

svn status -u | grep M

svn स्थिति केवल स्थानीय कार्यक्षेत्र संशोधनों को दर्शाती है। यह शाखा के सभी परिवर्तनों के संबंध में मूल प्रश्न का उत्तर नहीं दे रहा है, इसके निर्माण के बाद।
वेबनेस्टो

2
और फाइलें जिनमें Mनाम शामिल हैं
मनोइल

7
svn स्थिति -u | grep ^ M
rhel.user

मैं स्टेटस का इस्तेमाल करता हूं -यू | grep "M"
मार्क Kahn

2

-यू विकल्प ऑब्जेक्ट फ़ाइलों सहित प्रदर्शित करेगा यदि वे संकलन के दौरान जोड़े जाते हैं।

तो, इसके अतिरिक्त आप इस तरह का उपयोग कर सकते हैं।

svn status -u | grep -v '\?' 

2
echo You must invoke st from within branch directory
SvnUrl=`svn info | grep URL | sed 's/URL: //'`
SvnVer=`svn info | grep Revision | sed 's/Revision: //'`
svn diff -r $SvnVer --summarize $SvnUrl

0

svn log -q -vपथ दिखाता है और टिप्पणी छिपाता है। सभी रास्ते इंडेंट हैं इसलिए आप व्हॉट्सएप से शुरू होने वाली लाइनों को खोज सकते हैं। फिर पाइप करें cutऔर sortसाफ करें:

svn log --stop-on-copy -q -v | grep '^[[:space:]]'| cut -c6- | sort -u

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.