2010-05-25 16 views
6

मैं,, hudson के भीतर से sloccount उपयोग करने के लिए हमारे कोडबेस पर आंकड़े एकत्र करता है कोशिश कर रहा हूँ लेकिन डिफ़ॉल्ट sloccount द्वारा सभी फाइलों पर जानकारी एकत्र करता है यहां तक ​​कि उन जो "छिपा" कर रहे हैं (उदाहरण के लिए। .hideme)। इसका मतलब है कि आंकड़े खराब हो गए हैं क्योंकि उनमें .svn निर्देशिकाओं के भीतर फ़ाइलों से संख्या शामिल है।sloccount का उपयोग करते समय मैं .svn निर्देशिकाओं को कैसे अनदेखा कर सकता हूं?

क्या . से शुरू होने वाली किसी भी फाइल/निर्देशिकाओं को सही ढंग से अनदेखा करने के लिए मैं sloccount बता सकता हूं?

उत्तर

4

मेरे अंतिम दृष्टिकोण sed उत्पादन से .svn निर्देशिका दूर करने के लिए था sloccount "आप स्कैन और जेनकींस बता चींटी लक्ष्य का निर्माण करने के लिए चाहते हैं स्रोत फ़ोल्डर के नाम से" source_folder: "

<target name="sloccount"> 
    <echo message="build sloccount report" /> 
    <exec executable="sloccount" failonerror="true"> 
     <arg value="--details" /> 
     <arg value="--wide" /> 
     <arg value="source_folder" /> 
     <redirector output="sloccount.sc"> 
      <outputfilterchain> 
       <linecontains negate="true"> 
        <contains value=".svn" /> 
       </linecontains> 
      </outputfilterchain> 
     </redirector> 
    </exec> 
</target> 

, बस की जगह" "।

ध्यान दें कि इसके लिए चींटी 1.7.1 या बाद की आवश्यकता है।

+0

डेव का समाधान पहले स्थान पर' .svn' निर्देशिकाओं में फ़ाइलों पर समय बर्बाद नहीं करता है। –

6

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

sloccount --wide --details $DIR | sed "/\/\.svn\//d" > sloccount.sc 
+0

पर काम करता है क्या आप वाकई 'tr' आदेश की ज़रूरत है? 'ढूंढने' के लिए '-print0' ध्वज को पार करने के बारे में और' x0' 'ध्वज को' xargs' पर स्थानांतरित करने के लिए पथ और फ़ाइल नामों को स्थानांतरित करने के बारे में कैसे? –

+0

ढूंढें शामिल xargs समर्थन का उपयोग करें: '-exec sloccount {} \ + ' –

1

मैं एक" sloccount.sc "के निर्माण के लिए निम्नलिखित चींटी लक्ष्य उपयोग कर रहा हूँ:

find . \(! -regex '.*/\..*' \) -type f | \ 
tr '\n' ' ' | \ 
xargs sloccount 
4

इस का उपयोग करें:

find . -path '*/.*' -prune -o -type f -exec sloccount {} \+ 

-execxargs हैक्स अन्य उत्तर में से कुछ में देखा बचा जाता है। यह खोज-शामिल xargs समर्थन है। Regexps चलाने की कोई ज़रूरत नहीं है, ग्लोबिंग पर्याप्त है। कटौती उपनिवेश भी अधिक कुशल है।

अद्यतन: भी, आप एक और हालिया सबवर्जन में अपग्रेड करना चाहते हैं। नया चेकआउट प्रारूप (svn upgrade के बाद) केवल एक ही .svn निर्देशिका का उपयोग करता है, इसलिए आमतौर पर आप केवल sloccount src कर सकते हैं।

find . -not -wholename '*/.svn/*' -type f | xargs sloccount 
1

मिल का उपयोग करते हुए सभी अन्य निर्देशिकाओं से फाइल को इकट्ठा करके .svn निर्देशिका अनदेखा कर सकते हैं

बहिष्करण श्रृंखला के
sloccount --duplicates --wide --details . | grep -v -e '.svn' > sloccount.sc 

उदाहरण:

sloccount --duplicates --wide --details . | grep -v -e '.svn' -e 'thirdparty' > sloccount.sc 


एनबी: मैं इसका इस्तेमाल और यह मेरे जेनकींस

7

इस वाक्य रचना बनाए रखने के लिए और विस्तार करने के लिए (जो बहुत महत्वपूर्ण है जब आप कई निर्देशिकाओं को निकालने की जरूरत है) आसान है::

+0

इससे सावधान रहना चाहिए, यह वास्तव में केवल आउटपुट को फ़िल्टर करता है जो किसी भी योग को अपडेट नहीं करता है। –

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

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