मैं तोड़फोड़ में फ़ाइलों को कैसे अनदेखा कर सकता हूं?
इसके अलावा, मैं उन फ़ाइलों को कैसे खोजूं जो संस्करण नियंत्रण में नहीं हैं?
मैं तोड़फोड़ में फ़ाइलों को कैसे अनदेखा कर सकता हूं?
इसके अलावा, मैं उन फ़ाइलों को कैसे खोजूं जो संस्करण नियंत्रण में नहीं हैं?
जवाबों:
(यह उत्तर SVN 1.8 और 1.9 के व्यवहार से मेल करने के लिए अपडेट किया गया है)
आपके 2 प्रश्न हैं:
"अनदेखा फ़ाइल" से मेरा मतलब है कि फ़ाइल "अनविंडेड" के रूप में भी सूचियों में दिखाई नहीं देगी: आपका SVN क्लाइंट फ़ाइल को फाइल सिस्टम में बिल्कुल मौजूद नहीं होने का दिखावा करेगा।
उपेक्षित फाइलें "फाइल पैटर्न" द्वारा निर्दिष्ट की जाती हैं। एसवीएन के ऑनलाइन प्रलेखन में फ़ाइल पैटर्न के सिंटैक्स और प्रारूप को समझाया गया है: http://svnbook.red-bean.com/nightly/en/svn.advanced.props.special.ignore.html "फाइल पैटर्न इन सबवर्सन"।
संस्करण 1.8 (जून 2013) और बाद में, तोड़फोड़, फ़ाइल पैटर्न को निर्दिष्ट करने के 3 अलग-अलग तरीकों का समर्थन करता है। यहाँ उदाहरण के साथ एक सारांश है:
global-ignores
विकल्प:global-ignores
सूची अन्य उपयोगकर्ताओं द्वारा साझा नहीं की जाएगी, और यह आपके कंप्यूटर पर आपके द्वारा चेकआउट किए गए सभी रिपॉजिट पर लागू होता है।C:\Users\{you}\AppData\Roaming\Subversion\config
Software\Tigris.org\Subversion\Config\Miscellany\global-ignores
दोनों में HKLM
और HKCU
।~/.subversion/config
svn:ignore
संपत्ति, जो निर्देशिकाओं पर सेट है (फाइलें नहीं):.gitignore
काम करता है के समान ।svn:ignore
निर्देशिकाओं पर लागू किया जाता है और गैर-पुनरावर्ती या विरासत में मिला है। फ़ाइल पैटर्न से मेल खाने वाली मूल निर्देशिका की कोई भी फ़ाइल या तत्काल उपनिर्देशिका बाहर रखी जाएगी।जबकि SVN 1.8 "विरासत में मिली संपत्ति" की अवधारणा को जोड़ता है, svn:ignore
संपत्ति को गैर-तत्काल वंशज निर्देशिका में अनदेखा किया जाता है:
cd ~/myRepoRoot # Open an existing repo.
echo "foo" > "ignoreThis.txt" # Create a file called "ignoreThis.txt".
svn status # Check to see if the file is ignored or not.
> ? ./ignoreThis.txt
> 1 unversioned file # ...it is NOT currently ignored.
svn propset svn:ignore "ignoreThis.txt" . # Apply the svn:ignore property to the "myRepoRoot" directory.
svn status
> 0 unversioned files # ...but now the file is ignored!
cd subdirectory # now open a subdirectory.
echo "foo" > "ignoreThis.txt" # create another file named "ignoreThis.txt".
svn status
> ? ./subdirectory/ignoreThis.txt # ...and is is NOT ignored!
> 1 unversioned file
(इसलिए फ़ाइल ./subdirectory/ignoreThis
को नजरअंदाज नहीं किया जाता है, भले ही " ignoreThis.txt
" .
रेपो रूट पर लागू किया गया हो )।
इसलिए, पुनरावर्ती सूची को लागू करने के लिए आपको पुन: उपयोग करना चाहिए svn propset svn:ignore <filePattern> . --recursive
।
<filePattern>
बाल निर्देशिका में मान अलग-अलग है, तो बच्चे का मूल्य पूरी तरह से माता-पिता को ओवरराइड करता है, इसलिए कोई "एडिटिव" प्रभाव नहीं है।<filePattern>
रूट पर परिवर्तन करते हैं .
, तो आपको --recursive
इसे बच्चे और वंशज निर्देशिकाओं पर अधिलेखित करने के साथ बदलना होगा ।मैं ध्यान देता हूं कि कमांड-लाइन सिंटैक्स काउंटर-सहज है।
svn ignore pathToFileToIgnore.txt
कि यह है कि SVN की अनदेखी सुविधा कैसे काम करती है।svn:global-ignores
संपत्ति। SVN 1.8 (जून 2013) की आवश्यकता है:svn:ignore
, सिवाय इसके कि एसवीएन 1.8 की "विरासत में मिली संपत्ति" सुविधा का उपयोग किया जाता है।svn:ignore
, फ़ाइल पैटर्न स्वचालित रूप से हर वंशज निर्देशिका में लागू होता है (न केवल तत्काल बच्चों के लिए)।
svn:global-ignores
साथ सेट करना अनावश्यक है --recursive
, क्योंकि विरासत में मिली अनदेखी फ़ाइल पैटर्न स्वचालित रूप से लागू होती है क्योंकि वे विरासत में मिली हैं।पिछले उदाहरण की तरह कमांड का एक ही सेट चलाना, लेकिन svn:global-ignores
इसके बजाय उपयोग करना:
cd ~/myRepoRoot # Open an existing repo
echo "foo" > "ignoreThis.txt" # Create a file called "ignoreThis.txt"
svn status # Check to see if the file is ignored or not
> ? ./ignoreThis.txt
> 1 unversioned file # ...it is NOT currently ignored
svn propset svn:global-ignores "ignoreThis.txt" .
svn status
> 0 unversioned files # ...but now the file is ignored!
cd subdirectory # now open a subdirectory
echo "foo" > "ignoreThis.txt" # create another file named "ignoreThis.txt"
svn status
> 0 unversioned files # the file is ignored here too!
यह पूरी व्यवस्था मेरे लिए भ्रामक थी, क्योंकि टोर्टोइसेवएनएन की शब्दावली (जैसा कि उनके विंडोज एक्सप्लोरर मेनू सिस्टम में इस्तेमाल किया गया था) शुरू में मेरे लिए भ्रामक थी - मैं इस बात से अनभिज्ञ था कि इग्नोर मेनू की "पुनरावृत्ति जोड़ें," जोड़ें "और" जोड़ें "का क्या महत्व है विकल्प। मुझे उम्मीद है कि यह पोस्ट बताती है कि एसवीएन प्रॉपर्टीज की सुविधा को इग्नोर कैसे किया जाता है। उस ने कहा, मैं आपको अनदेखा करने के लिए कमांड-लाइन का उपयोग करने की सलाह देता हूं ताकि आप यह महसूस कर सकें कि यह GUI का उपयोग करने के बजाय यह कैसे काम करता है, और कमांड-लाइन के साथ सहज होने के बाद गुणों को हेरफेर करने के लिए केवल GUI का उपयोग कर रहा है।
कमांड svn status
नजरअंदाज की गई फ़ाइलों को छिपाएगा (अर्थात, फाइलें जो एक आरजीए global-ignores
पैटर्न से मेल खाती हैं, या तत्काल माता-पिता की निर्देशिका के svn:ignore
पैटर्न से मेल खाती हैं या किसी भी एंसर निर्देशिका के svn:global-ignores
पैटर्न से मेल खाती हैं ।
--no-ignore
सूचीबद्ध फ़ाइलों को देखने के लिए विकल्प का उपयोग करें । उपेक्षित फ़ाइलों की स्थिति है I
, तो आउटपुट grep
को केवल "I" से शुरू होने वाली लाइनों को दिखाने के लिए पाइप करें ।
आदेश है:
svn status --no-ignore | grep "^I"
उदाहरण के लिए:
svn status
> ? foo # An unversioned file
> M modifiedFile.txt # A versioned file that has been modified
svn status --no-ignore
> ? foo # An unversioned file
> I ignoreThis.txt # A file matching an svn:ignore pattern
> M modifiedFile.txt # A versioned file that has been modified
svn status --no-ignore | grep "^I"
> I ignoreThis.txt # A file matching an svn:ignore pattern
टा-डा!
svn propedit svn:ignore .
और कोई टेक्स्ट एडिटर कॉन्फ़िगर नहीं किया गया है, तो आपको एक त्रुटि संदेश मिलेगा जिसमें लिखा है svn: E205007: कोई भी पर्यावरण चर SVN_EDITOR, VISUAL या EDITOR सेट नहीं है, और कोई भी 'एडिटर-cmd' रन-टाइम कॉन्फ़िगरेशन विकल्प नहीं था एक संपादक को खोलने के बजाय मिला । तो बस इस तरह निर्दिष्ट करें - वेदिटर-सीएमडी नैनोsvn propedit svn:ignore . --editor-cmd nano
svn status | grep '^?'
संस्करण नियंत्रण फ़ाइलों के तहत सूची नहीं बनाने के लिए निम्न कमांड का उपयोग करें।
svn status | grep "^\?" | awk "{print \$2}" > ignoring.txt
फिर फ़ाइल को संपादित करें सिर्फ उन फ़ाइलों को छोड़ने के लिए जिन्हें आप वास्तव में अनदेखा करना चाहते हैं । फिर फ़ाइल में सूचीबद्ध फ़ाइलों को अनदेखा करने के लिए इसका उपयोग करें:
svn propset svn:ignore -F ignoring.txt .
लाइन के अंत में डॉट नोट करें। यह एसवीएन को बताता है कि संपत्ति को वर्तमान निर्देशिका पर सेट किया जा रहा है।
फ़ाइल हटाएँ:
rm ignoring.txt
अंत में,
svn ci --message "ignoring some files"
तब आप देख सकते हैं कि किन फ़ाइलों को अनदेखा किया गया है:
svn proplist -v
svn status | awk "/^?/ {print \$2}" > ignoring.txt
।
svn pg svn:ignore . >> ignore.txt
फ़ाइल को वर्तमान इग्नोर करने के लिए पहले कमांड के बाद।
आप एक फ़ाइल या निर्देशिका को अनदेखा कर सकते हैं जैसे .ignignore। बस उन निर्देशिकाओं / फ़ाइलों की सूची की एक टेक्स्ट फ़ाइल बनाएँ जिन्हें आप अनदेखा करना चाहते हैं और नीचे दिए गए कोड को चलाना चाहते हैं:
svn propset svn:ignore -F ignorelist.txt .
या यदि आप पाठ फ़ाइल का उपयोग नहीं करना चाहते हैं, तो आप इसे इस तरह कर सकते हैं:
svn propset svn:ignore "first
second
third" .
स्रोत: Karsten के ब्लॉग - सेट svn: कमांड लाइन से कई फ़ाइलों के लिए उपेक्षा करें
svn:ignore
कमांड को फिर से चलाने की जरूरत है (देखें stackoverflow.com/a/58380306/189518 )
यदि आप TortoiseSVN का उपयोग कर रहे हैं , तो किसी फ़ाइल पर राइट-क्लिक करें और फिर TortoiseSVN / Add to अनदेखा सूची चुनें । यह फ़ाइल / वाइल्डकार्ड को svn:ignore
संपत्ति में जोड़ देगा ।
svn:ignore
जाँच की जाएगी जब आप फ़ाइलों में जाँच कर रहे हैं, और मेल खाने वाली फ़ाइलों को अनदेखा किया जाएगा। मेरे पास Visual Studio .NET प्रोजेक्ट के लिए निम्नलिखित अनदेखी सूची है:
bin obj
*.exe
*.dll
_ReSharper
*.pdb
*.suo
आप इस सूची को TortoiseSVN / Properties के संदर्भ मेनू में पा सकते हैं ।
जैसा कि किसी ने भी इसका उल्लेख नहीं किया है ...
svn propedit svn:ignore .
फिर पैटर्न की अनदेखी करने, संपादक से बाहर निकलने के लिए फ़ाइल की सामग्री को संपादित करें और आप सभी काम कर रहे हैं।
मुझे जावा के लिए लेख। Svnignore उदाहरण मिला ।
उदाहरण: पटरियों पर रूबी के लिए ssignignore,
/log
/public/*.JPEG
/public/*.jpeg
/public/*.png
/public/*.gif
*.*~
और उसके बाद:
svn propset svn:ignore -F .svnignore .
.Gitignore के उदाहरण हैं। आप अपने .svignore के लिए उपयोग कर सकते हैं
प्रोपेडिट का उपयोग करते समय सुनिश्चित करें कि कोई अनुगामी स्थान न हो क्योंकि इससे फ़ाइल को अनदेखा सूची से बाहर रखा जाएगा।
यदि आप आरंभ करने के लिए फ़ाइल बनाने के लिए linux पर टैब-स्वतः पूर्ण का उपयोग करते हैं तो ये स्वचालित रूप से सम्मिलित किए जाते हैं:
svn propset svn:ignore 'file1
file2' .
एक और उपाय है:
svn st | awk '/^?/{print $2}' > svnignore.txt && svn propget svn:ignore >> svnignore.txt && svn propset svn:ignore -F svnignore.txt . && rm svnignore.txt
या लाइन से लाइन
svn st | awk '/^?/{print $2}' > svnignore.txt
svn propget svn:ignore >> svnignore.txt
svn propset svn:ignore -F svnignore.txt .
rm svnignore.txt
यह क्या करता है:
इसके अलावा, यदि आप कछुआ एसवीएन का उपयोग करते हैं तो आप यह कर सकते हैं:
config
फ़ाइल का उल्लेख करता है।
Bkbilly के उत्तर का अधिक पठनीय संस्करण :
svn st | awk '/^?/{print $2}' > svnignore.txt
svn propget svn:ignore >> svnignore.txt
svn propset svn:ignore -F svnignore.txt .
rm svnignore.txt
यह क्या करता है:
आप SVN की कॉन्फ़िगरेशन फ़ाइल में एक वैश्विक अनदेखा पैटर्न भी सेट कर सकते हैं।
तोड़फोड़ करने के लिए एक निर्देशिका जोड़ना, और निर्देशिका सामग्री की अनदेखी करना
svn propset svn:ignore '\*.*' .
या
svn propset svn:ignore '*' .
फाइलों की स्थिति दिखाने के लिए अपनी वर्किंग कॉपी पर कमांड svn स्टेटस का प्रयोग करें , वे फाइलें जो अभी तक वर्जन कंट्रोल (और नजरअंदाज नहीं) के तहत हैं उनके आगे प्रश्न चिह्न होगा।
के रूप में फ़ाइलों को अनदेखा करने के लिए आपको svn को संपादित करने की आवश्यकता है: संपत्ति पर ध्यान न दें, अध्याय को अनदेखा करें । एचटीएमएल । पुस्तक में svn स्थिति का उपयोग करने के बारे में अधिक वर्णन किया गया है।
एसवीएन ignore
को कछुआ एसवीएन में प्रबंधन करना आसान है। TortoiseSVN खोलें और फ़ाइल मेनू पर राइट-क्लिक करें फिर सूची को अनदेखा करने के लिए जोड़ें चुनें।
यह svn:ignore
संपत्ति में फाइलें जोड़ देगा । जब हम फाइलों में जांच करते हैं, तो जो फाइल उसके साथ मेल खाता svn:ignore
है, उसे नजरअंदाज कर दिया जाएगा और वह प्रतिबद्ध नहीं होगा।
Visual Studio प्रोजेक्ट में हमने अनदेखा करने के लिए निम्न फ़ाइलों को जोड़ा है:
bin obj
*.exe
*.dll
*.pdb
*.suo
हम सफलतापूर्वक इस पद्धति का उपयोग करके Comparetrap के SVN पर स्रोत कोड का प्रबंधन कर रहे हैं
मेरे लिए क्या काम किया:
मैं तोड़फोड़ में फ़ाइलों को कैसे अनदेखा कर सकता हूं?
1. फाइल एक्सप्लोरर में, SVN प्रोजेक्ट फोल्डर-नाम पर राइट-क्लिक करें।
2. "SVN कमिट ..."
3.A "कमिट" विंडो
पर क्लिक करें। 4. उस फोल्डर / फाइल पर राइट-क्लिक करें जिसे आप नजरअंदाज करना चाहते हैं।
सूची को अनदेखा करने के लिए जोड़ें पर क्लिक करें
6.
फ़ोल्डर / फ़ाइल का
चयन करें 7. SVN के लिए "संपत्ति परिवर्तन" चुनें
इसके अलावा, मैं उन फ़ाइलों को कैसे खोजूं जो संस्करण नियंत्रण में नहीं हैं?
उपरोक्त चरण 3 के बाद, "बिना बताए फाइलें दिखाएं" पर क्लिक करें