2009-05-21 9 views
51

क्या पूरे भंडार को अनदेखा करने के प्रचार के बिना स्थानीय रूप से एक क्लाइंट पर स्थानीय रूप से उपversण में फ़ाइल में परिवर्तनों को अनदेखा करना संभव है?सबवर्सन: केवल एक क्लाइंट पर स्थानीय रूप से एक फ़ाइल में संशोधनों को अनदेखा करें

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

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

+4

मूल रूप से, मुझे लगता है कि आप गलत समस्या को हल करने का प्रयास कर रहे हैं। अपने मेकफ़ाइल को दोनों वातावरण में ठीक से काम करने के लिए क्यों संशोधित नहीं करें? –

+22

निकोलस, भले ही फूद अपनी समस्या का सबसे अच्छा तरीका उपयोग नहीं कर रहा है, मुझे यकीन है कि अनदेखी बनाने के वैध कारण हैं जो केवल आपकी कार्यशील प्रति पर लागू होते हैं। – allyourcode

+7

मैं allyourcode से सहमत हूँ। एक डेवलपर (svn के उपयोगकर्ता) को मौलिक सिद्धांतों को बदलने का विशेषाधिकार या इच्छा नहीं हो सकती है। मैं भी इस समस्या का हल करना चाहूंगा। हमारे पास हमारे रेपो में पर्यावरण संपत्ति फाइलों की जांच की गई है। जब मैं इन स्थानीय रूप से बदलता हूं, तो मुझे चेकइन करते समय मैन्युअल रूप से अनचेक करना पड़ता है। यह केवल समय की बात है जब तक कि मैं उन्हें अनचेक करना न भूलूं।मैं सहमत हूं कि ये फ़ाइलें हमारे रेपो में नहीं होनी चाहिए, लेकिन मेरे पास यह निर्णय लेने का अधिकार नहीं है, इसलिए मुझे वास्तव में एक कामकाज की आवश्यकता है। – andersonbd1

उत्तर

-3

फ़ाइल निर्यात करने के लिए svn export का उपयोग करें ताकि यह संस्करण नियंत्रण में नहीं है।

http://svnbook.red-bean.com/en/1.0/re10.html

संपादित करें: हालांकि मेरा मानना ​​है कि यह एक प्रति-निर्देशिका के आधार पर किया जा सकता है, तो आप कुछ हद तक अपनी फ़ाइलें पुनर्निर्माण करने के लिए होगा।

मैं इस समय इसका परीक्षण नहीं कर सकता, लेकिन क्या एक स्पैस चेकआउट आपको यहां मदद करेगा?

http://svnbook.red-bean.com/nightly/en/svn.advanced.sparsedirs.html

+0

काम नहीं करता है, अभी भी भंडार का हिस्सा है और संशोधित – fuad

+1

के रूप में दिखाता है मुझे यकीन नहीं है कि एक संस्करण निर्देशिका में फ़ाइलों को निर्यात करना संभव है। –

+0

मुझे यकीन नहीं है कि इसे इतनी भारी क्यों वोट दिया गया है। यह कई स्थितियों में काम करता है जहां अन्य समाधान नहीं होते हैं। सबसे विशेष रूप से यह मेरे लिए काम करता है क्योंकि मेरे पास दो अतिरिक्त आवश्यकताएं थीं। 1) कोई TortoiseSVN (मैं ओएस एक्स में हूँ) 2) मैं परिवर्तन सूचियों के लिए मेरी आदतों को समायोजित नहीं करना चाहता। संपादित करें: एक संस्करण निर्देशिका btw के अंदर परीक्षण और काम कर रहा है। आप "svn update। --set-depth = blank" के साथ दी गई निर्देशिका (निर्देशिका के अंदर से) को हटा सकते हैं और फिर आपको इसे "svn export --force svnrepopath/निर्देशिका" के साथ फिर से जांचना होगा। – radicaledward101

1

निकटतम सुरक्षित समाधान मैं के बारे में सोच सकते हैं एक व्यक्तिगत शाखा का प्रयोग है।

+1

यह कैसे मदद करता है? जब आप ट्रंक में वापस विलय करना चाहते हैं, तो आपके पास एक और (बदतर?) समस्या होगी: उन फ़ाइलों को विलय नहीं करना जिन्हें आप अनदेखा करना चाहते हैं। – allyourcode

+1

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

10

अगर आप सबवर्सन 1.5.x का उपयोग या उच्च आप changelists उपयोग कर सकते हैं:

svn cl COMMIT /path/to/project/* 

svn cl NOT_COMMIT /path/to/project/Makefile 

नोट: दूसरा आदेश Makefile पहले परिवर्तन सूची से निकाल दिया जाएगा साथ। आप चेतावनी को अनदेखा कर सकते हैं।

दूसरा परिवर्तक मत करो।

कर करता है के माध्यम से:

svn ci --cl COMMIT -m"<LOG MESSAGE HERE>" 

महत्वपूर्ण: आप --cl विकल्प के बिना प्रतिबद्ध हैं, सभी अपने परिवर्तनों

+1

svn cl एक अच्छा विकल्प नहीं हो सकता है, क्योंकि यह परिवर्तकों को निर्देशिका जोड़ने का समर्थन नहीं करता है। यह एक समस्या है यदि ऐसी निर्देशिकाएं हैं जिन्हें आप svn जोड़ते हैं जो आप अपनी प्रतिबद्धता में चाहते हैं। – allyourcode

+2

परिवर्तक उपयोगी प्रतीत होते हैं, लेकिन मुझे नहीं लगता कि वे वास्तव में यहां लागू होते हैं। यह एक अलग उपयोग केस है। वे काम कर सकते हैं अगर डिफ़ॉल्ट रूप से कमांड ने फ़ाइलों को अनदेखा किया जो कि चेंजलिस्ट में थे - यह वास्तव में उपयोगी होगा। लेकिन जब तक कि मैं गलत नहीं हूं, ऐसा नहीं है कि यह कैसे काम करता है। यदि आप कमांड पर चेंजलिस्ट निर्दिष्ट नहीं करते हैं, तो यह व्यवहार करता है जैसे चेंजलिस्ट मौजूद नहीं हैं, सही? तो यदि परिवर्तक निर्देशिकाओं का समर्थन करते हैं, तो यह एक आदर्श समाधान नहीं होगा। आपको उन फ़ाइलों को मैन्युअल रूप से ले जाना होगा जिन्हें आप वास्तव में एक परिवर्तक में जांचना चाहते हैं। मैं केवल उन फ़ाइलों को मैन्युअल रूप से चिह्नित करता हूं जिन्हें मैं चेकइन नहीं करना चाहता हूं। – andersonbd1

38

प्रतिबद्ध होना होगा SVN के कई पहलुओं के साथ के रूप में, कछुआ यह वास्तव में बना देता है आसान। असल में, मेरा मानना ​​है कि कछुआ वास्तव में एक व्यवस्थित तरीके से मौजूदा svn सुविधाओं का उपयोग कर सुविधाओं को जोड़ता है। मुझे एहसास है कि यह जवाब केवल खिड़कियां है, लेकिन शायद वहां कुछ लोग मेरे जैसे हैं और अभी भी खिड़कियों का उपयोग करते हैं। "संशोधनों के लिए जांचें" पॉपअप में बस अपनी फ़ाइलों पर राइट क्लिक करें और "चेंजलिस्ट पर जाएं" -> "अनदेखा-ऑन-प्रतिबद्ध" चुनें। अब जब आप कछुए का उपयोग करके चेकइन करते हैं, तो यह आपके परिवर्तनों को विभिन्न परिवर्तन सूचियों में विभाजित करेगा, इसलिए कम से कम आप यह बता सकते हैं कि आप क्या करना चाहते हैं और आप क्या नहीं करना चाहते हैं।

+3

अच्छा! लेकिन फ़ाइल (और इतना फ़ोल्डर) अभी भी संशोधित के रूप में दिखाई देता है। – Loda

+0

हां, मुझे एक ही समस्या है। यह सब आकस्मिक अद्यतन/कमेटी के खिलाफ रोकता है। – ArtB

+2

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

संबंधित मुद्दे