"Svn अपडेट" कमांड जारी करने से पहले रिपॉजिटरी से क्या अपडेट होगा?


115

मैंने ग्रहण से SVN रिपॉजिटरी में कई फाइलों में बदलाव किए हैं।

मैं तब लिनक्स बॉक्स पर वेबसाइट निर्देशिका पर जाता हूं, जहां मैं रिपॉजिटरी से इन निर्देशिकाओं को वहां अद्यतन करना चाहता हूं।

मैं "svn अपडेट प्रोजेक्ट 100" कहना चाहता हूं जो "प्रोजेक्ट 100" के तहत निर्देशिकाओं को मेरी सभी जोड़ी गई और बदली गई फाइलों आदि के साथ अपडेट करेगा।

फिर भी, मैं आवश्यक रूप से उन परिवर्तनों को अद्यतन नहीं करना चाहता जो मैंने नहीं किए। तो मैंने सोचा कि मैं "svn स्टेटस प्रोजेक्ट 100" कह सकता हूं, लेकिन जब मैं ऐसा करता हूं तो मुझे पूरी तरह से अलग-अलग बदलावों की सूची मिल जाएगी, जो कि मेरा कोई भी सूची में नहीं है, जो अजीब है।

इसलिए यह सुनिश्चित करने के लिए कि केवल मेरे परिवर्तन वेब निर्देशिका में अपडेट किए गए हैं, मुझे हर उस निर्देशिका में नेविगेट करने के लिए मजबूर किया जाता है, जहां मुझे पता है कि एक बदलाव है जिसे मैंने बनाया है और स्पष्ट रूप से केवल उन फ़ाइलों को अपडेट किया है, जैसे "svn update newfile1.php" आदि। जो थकाऊ है।

क्या कोई भी मानक कार्य प्रक्रिया पर कोई प्रकाश डाल सकता है, अर्थात् मुझे "svn अपडेट" कमांड निष्पादित करने से पहले किए जाने वाले सभी परिवर्तनों की सटीक सूची कैसे मिलेगी? मैंने सोचा कि यह "स्थिति" कमांड थी।

जवाबों:


167

प्रयत्न:

svn status --show-updates

या (समान लेकिन कम):

svn status -u

9
या इससे कम: svn st -u
केनेकोर्न केत्सोम्बुत

आउटपुट में X का क्या मतलब है?
इगोरगानापोलस्की

1
इसके अलावा, उपयोग करें: svn status -q -u... केवल अद्यतन परिवर्तन और स्थानीय परिवर्तन दिखाता है जो रिपॉजिटरी से संबंधित फ़ाइलों से संबंधित है। आपको गैर-रिपॉजिटरी फ़ाइलों से प्रश्न चिह्न (?) नहीं मिलता है।
होगा

56

अपनी कार्यशील प्रति और नवीनतम svn सर्वर रिपॉजिटरी के बीच आप जो जानना चाहते हैं, उसके आधार पर, अपनी स्थानीय कार्य प्रतिलिपि को अपडेट किए बिना, यहाँ है कि आप क्या कर सकते हैं:

यदि आप जानना चाहते हैं कि svn सर्वर रिपॉजिटरी में क्या बदला गया है, तो कमांड चलाएँ:

$ svn st -u

यदि आप यह जानना चाहते हैं कि क्या वही फ़ाइल आपकी स्थानीय वर्किंग कॉपी और svn सर्वर रिपॉजिटरी दोनों में संशोधित की गई है, तो कमांड चलाएँ:

$ svn st -u | grep -E '^M {7}\*'

यदि आप किसी विशेष संशोधन और HEAD के बीच परिवर्तित फ़ाइलों की सूची प्राप्त करना चाहते हैं, तो कमांड चलाएँ:

$ svn diff -r revisionNumber:HEAD --summarize

यदि आप विशेष संशोधनों के बीच परिवर्तित फ़ाइलों की सूची प्राप्त करना चाहते हैं, तो कमांड चलाएँ:

$ svn diff -r revisionNumber:anotherRevisionNumber --summarize

यदि आप देखना चाहते हैं कि क्या अद्यतन किया जाएगा (वास्तव में अद्यतन किए बिना), तो कमांड चलाएँ:

$ svn merge --dry-run -r BASE:HEAD .

यदि आप यह जानना चाहते हैं कि किसी विशेष फ़ाइल की सामग्री को आपकी कार्य प्रतिलिपि के साथ svn सर्वर रिपॉजिटरी में बदल दिया गया है, तो कमांड चलाएँ:

$ svn diff -r BASE:HEAD ./pathToYour/file

यदि आप यह जानना चाहते हैं कि आपकी कार्य प्रति, रन कमांड की तुलना में svn सर्वर रिपॉजिटरी में सभी फाइलों की क्या सामग्री बदली गई है:

$ svn diff -r BASE:HEAD .

43

आप जारी करके (अद्यतन किए बिना) क्या देख सकते हैं:

svn merge --dry-run -r BASE:HEAD .

अधिक जानकारी यहाँ


ऊपर मेरे लिए काम नहीं किया, भागना पड़ाsvn merge --dry-run --revision BASE:HEAD .
Znarkus

3
; हो रही है "पहले अद्यतन करने की कोशिश SVN: E195020: काम कर प्रतिलिपि [16061 16,032] मिश्रित संशोधन में विलय नहीं कर सकते"
हुबर्ट Grzeskowiak

शानदार जवाब - बहुत बुरा यह मिश्रित संशोधन कार्य प्रतियों पर काम नहीं करता है .. जो मुझे सीखेगा
जेरार्ड ओनली

2
@HubertGrzeskowiak - मुझे विडंबना पसंद है q: how do I ... without doing an update?a: first, do an update, then ...:) :) :)
Jesse Chisholm

17

यह वही है जिसे मैं देख रहा था। पहले Google की जाँच की, लेकिन svn helpमेरे लिए आने से समाप्त हो गया :)

svn diff -r BASE:HEAD .


0

आप अपनी वर्किंग कॉपी और रिपॉजिटरी के बीच अंतर देखने के लिए 'svn diff' का उपयोग कर सकते हैं।


9
गलत। वे केवल आपके और अंतिम समय के बीच के अंतर को सूचीबद्ध करेंगे जो आपने भंडार के साथ समन्वयित किया था। आपको इस बीच कोई अंतर नहीं दिखाई देगा कि अन्य लोगों ने इस बीच रिपॉजिटरी के लिए क्या किया है। ओपी यह जानना चाहता है कि उन परिवर्तनों में क्या हैं, बिना उन्हें लागू किए बिनाsvn update
10

@Andrew का अर्थ है कि ओपी चलाने के लिए 'svn diff -r HEAD URL' को चेक किए गए फाइलों से अंतर को देखने के लिए जिसे रिपॉजिटरी में HEAD या शीर्ष संस्करण के रूप में जांचा जाता है।
मैक

0

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

IMHO फीचर का विकास इस तरह किया जाना चाहिए।

तब आप ट्रंक के बजाय इस शाखा से इस लक्ष्य मशीन को अपडेट कर सकते थे।

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