क्या केवल विशिष्ट फ़ाइलों की सूची बनाने का कोई तरीका है (उन फ़ाइलों की सूची में से केवल एक जिसे SVN प्रतिबद्ध करना चाहता है)।
मैं मैक ओएस एक्स पर टर्मिनल के तहत काम कर रहा हूं, बिना किसी यूआई के।
क्या केवल विशिष्ट फ़ाइलों की सूची बनाने का कोई तरीका है (उन फ़ाइलों की सूची में से केवल एक जिसे SVN प्रतिबद्ध करना चाहता है)।
मैं मैक ओएस एक्स पर टर्मिनल के तहत काम कर रहा हूं, बिना किसी यूआई के।
जवाबों:
ज़रूर। बस फाइलों को सूचीबद्ध करें:
$ svn ci -m "Fixed all those horrible crashes" foo bar baz graphics/logo.png
मुझे फ़ाइलों के एक निश्चित सेट को अनदेखा करने के लिए इसे बताने के तरीके से अवगत नहीं है। बेशक, यदि आप जिन फ़ाइलों को कमिट करना चाहते हैं, वे आसानी से शेल द्वारा सूचीबद्ध हैं, तो आप इसका उपयोग कर सकते हैं:
$ svn ci -m "No longer sets printer on fire" printer-driver/*.c
आप एक फ़ाइल से प्रतिबद्ध करने के लिए svn कमांड को फाइलों की सूची पढ़ सकते हैं:
$ svn ci -m "Now works" --targets fix4711.txt
svn add
रिपॉजिटरी में फाइल जोड़ने के लिए उपयोग किया जाता है।
चैंजिस्ट का इस्तेमाल करें। फ़ाइलों को निर्दिष्ट करने का लाभ यह है कि आप जो कुछ भी चाहते हैं, उसकी कल्पना कर सकते हैं और पुष्टि कर सकते हैं कि वास्तव में आप कमिटेड हैं।
$ svn changelist fix-issue-237 foo.c
Path 'foo.c' is now a member of changelist 'fix-issue-237'.
किया, svn अब चीजों को आपके लिए अलग रखता है। यह तब मदद करता है जब आप कई बदलावों की बाजीगरी करते हैं
$ svn status
A bar.c
A baz.c
--- Changelist 'fix-issue-237':
A foo.c
अंत में, इसे बताएं कि आप क्या बदलना चाहते हैं।
$ svn commit --changelist fix-issue-237 -m "Issue 237"
svn changelist fix-issue-237 --recursive path/to/directory
आप मूल रूप से उन फ़ाइलों को डालते हैं जिन्हें आप कमांड लाइन पर रखना चाहते हैं
svn ci file1 file2 dir1/file3
मेरी तोड़फोड़ की स्थिति के कारण, मुझे रचनात्मक होना पड़ा। svn st
दिखाया M
, A
और ~
स्थितियां। मैं केवल इतना चाहता था M
और A
...
svn st | grep ^[A\|M] | cut -d' ' -f8- > targets.txt
यह कमांड कहती है svn st
कि स्पेस लाइमाइटर का उपयोग करते हुए M
या A
उसके साथ शुरू होने वाली सभी लाइनों का आउटपुट खोजें , फिर कॉलम्स 8 को अंत तक प्राप्त करें। डंप करें कि टारगेट में। टेक्सट और ओवरराइट करें।
फिर target.txt को संशोधित करें और फ़ाइल सूची को आगे बढ़ाएं। फिर प्रतिबद्ध करने के लिए नीचे चलाएं:
svn ci -m "My commit message" --targets targets.txt
शायद सबसे आम उपयोग मामला नहीं है, लेकिन उम्मीद है कि यह किसी की मदद करता है।
grep -v '^~'
जो चाहते हैं उसे ब्लैकलिस्ट करने के लिए भी इस्तेमाल कर सकते हैं।
फ़ाइलों को स्पष्ट रूप से के रूप में द्वारा दिखाए गए लिस्टिंग इसके अलावा खोलना और Wienczny , आप सेटअप परिवर्तन सूचियों कर सकते हैं और इन चेक इन। ये आपको एक ही काम करने वाले कॉपी में परिवर्तन के निराशाजनक सेट का प्रबंधन करने की अनुमति देते हैं।
आप उनके बारे में उत्कृष्ट एसवीएन पुस्तक के ऑनलाइन संस्करण में पढ़ सकते हैं ।
इस स्क्रिप्ट की कोशिश करो ..
#!/bin/bash
NULL="_"
for f in `svn st|grep -v ^\?|sed s/.\ *//`;
do LIST="${LIST} $f $NULL on";
done
dialog --checklist "Select files to commit" 30 60 30 $LIST 2>/tmp/svnlist.txt
svn ci `cat /tmp/svnlist.txt|sed 's/"//g'`
मैं "छिपाने" नाम का एक (उप) फ़ोल्डर बनाता हूं, उस फ़ाइल को स्थानांतरित करता हूं जो मैं नहीं करता हूं वहां चाहता। फिर गुमशुदा फाइल के बारे में शिकायत को नजरअंदाज करते हुए, मेरी प्रतिबद्धता का पालन करें। फिर छिपी हुई फ़ाइल को वापस छिपाने से स्थानांतरित करें। "
मैं इस युक्ति का कोई नकारात्मक पहलू नहीं जानता।