2009-09-21 20 views
11

मैं एक एसवीएन पेड़ में एक लिनक्स कर्नेल जोड़ने की कोशिश कर रहा हूं, जिसमें एक .git उपनिर्देशिका है - जिसे मैं जोड़ना नहीं चाहता हूं।'svn अनदेखा' क्यों अनदेखा नहीं करता है?

क्या कोई इस व्यवहार को समझा सकता है - यह .git निर्देशिका को अनदेखा क्यों नहीं करता है?

test2$ mkdir -p a/.git/blah 
test2$ ls 
a 
test2$ svn propset svn:ignore .git . 
property 'svn:ignore' set on '.' 
test2$ svn propset -R svn:ignore .git . 
property 'svn:ignore' set (recursively) on '.' 
test2$ svn add a 
A   a 
A   a/.git 
A   a/.git/blah 

उत्तर

7

पहले svn propseta की माता पिता निर्देशिका पर svn:ignore संपत्ति सेट।

दूसरा svn propset कुछ भी नहीं करता है, क्योंकि a अभी तक एसवीएन प्रबंधन के तहत नहीं है।

17

svn:ignore निर्देशिका पर संपत्ति वर्तमान निर्देशिका में नामों को सूचीबद्ध करती है जिन्हें अनदेखा किया जाएगा। आपने svn:ignore अपनी वर्तमान निर्देशिका पर .git पर संपत्ति सेट की है, लेकिन यह उपनिर्देशिका a पर लागू नहीं होती है। आप क्या कर सकते पहले जोड़ने है a गैर रिकर्सिवली:

svn add -N a 
svn ci -m "add a directory" 

फिर svn:ignore गुण सेट:

svn propset svn:ignore .git a 

और फिर अपने पेड़ जोड़ें:

svn add a 

यह a/.git अनदेखा कर देना चाहिए निर्देशिका।

+1

'add' के बाद' commit' वास्तव में आवश्यक नहीं है। एक ऐसी निर्देशिका में एक संपत्ति जोड़ना संभव है जो कामकाजी प्रतिलिपि में ट्रैक किया गया हो लेकिन अभी तक प्रतिबद्ध नहीं है। –

5

svn:ignore संपत्ति पहले से जोड़े गए निर्देशिका में फ़ाइलों को अनदेखा करने के लिए है।

फ़ाइलें (या निर्देशिका) के आयात से बचने के लिए, आप वैश्विक ध्यान नहीं देता[मिश्रण] खंड में -feature, जो फ़ाइल ~/.svn/config (यूनिक्स) या %APPDATA%\Subversion\config (विंडोज़) में विन्यास योग्य है का उपयोग करना चाहिए।

लाइन के सामने # निकाल कर यह सक्रिय करें:

global-ignores = .git 
+1

ग्लोबल-अनदेखा के साथ समस्या यह है कि रेपो का उपयोग करने वाला अगला व्यक्ति रेपो में देखने से बचने के लिए इच्छित सामग्री को अनदेखा करने वाला नहीं है। इसके लिए – Coderer

+0

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

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