2012-11-25 19 views
6

मैं एक साप्ताहिक जीआईटी रिपोर्ट जेनरेट करना चाहता हूं, जहां मैं देख सकता हूं कि विशिष्ट समय सीमा में प्रत्येक डेवलपर द्वारा कितने कोड सबमिट किए गए हैं और हटा दिए गए हैं।जीआईटी साप्ताहिक गतिविधि

उद्देश्य विशिष्ट समय सीमा में

  • जोड़ा गया कोड
  • हटाए गए कोड डेवलपर्स गतिविधि के सामान्य अवलोकन पाने के लिए

    • प्रारंभ दिनांक
    • समाप्ति दिनांक
    • डेवलपर
    • प्रतिबद्धता है

    यह अगर मैं सीएसवी

    [some-script/command] > weekly-git-log.csv 
    
  • उत्तर

    1

    विशिष्ट दिनांक सीमा में विशिष्ट उपयोगकर्ता के लिए परिवर्तन की सूची - प्रत्येक फ़ाइल विवरण

    git log --pretty=format:"%h,%an,%ad,%s" [email protected] --since=2012-11-19 --until=2012-11-20 --date=short --numstat 
    

    विशिष्ट दिनांक सीमा में विशिष्ट उपयोगकर्ता के लिए परिवर्तन की सूची - कमिट सारांश

    git log --pretty=format:"%h,%an,%ad,%s" [email protected] --since=2012-11-19 --until=2012-11-20 --date=short --shortstat 
    

    अंतिम लघु संस्करण

    git log --pretty=format:"%Cgreen%ad%x09%Cblue%s" --date=short [email protected] --shortstat --since=2012-11-19 --until=2012-11-20 
    
    5

    में इन जानकारी निर्यात कर सकते हैं मैं git log --since="1 week ago" --until="now" और customize it to your heart's content के साथ शुरू होता है बहुत अच्छा होगा।

    उदाहरण:

    git log --since="1 week ago" --until="now" --format="%an,%ct,%s" > weekly-git-log.csv

    आप क्या आप CSV फ़ाइल में संग्रहीत करना चाहते हैं के बारे में बहुत विशिष्ट नहीं किया जा रहा है, इसलिए मैं आपको एक बहुत ही सामान्य जवाब देने हूँ और इसकी सूचना देने के विवरण भरें स्वयं।

    संपादित:

    #!/bin/bash 
    IFS=$'\n' 
    DATA=(`git log --since="1 week ago" --until="now" --format="%ct,%an,%s,"`) 
    LINES=(`git log --since="1 week ago" --until="now" --pretty=tformat: --shortstat | gawk '(NF > 0){ printf "%s,%s\n",$1,$4 }' -`) 
    
    i=0 
    while [ $i -lt ${#DATA[@]} ]; do 
        echo "${DATA[$i]}${LINES[$i]}" 
        i=$[i + 1] 
    done 
    

    मैं फेंक रहा हूँ:

    आप लाइनों जोड़ा गया/निकाला प्राप्त करना चाहते हैं, तो आप थोड़ा अधिक सजावटी प्राप्त करने के लिए और एक bash स्क्रिप्ट का उपयोग करने जा रहे हैं संदेश के बाद जोड़े/हटाए गए लाइनों में, क्योंकि स्क्रिप्ट में करना आसान है (मैं बैश के साथ इतना अच्छा नहीं हूं)। आप जो करना चाहते हैं उसके लिए यह एक बहुत अच्छी नींव होनी चाहिए। (./script.sh >file.csv को फ़ाइल में आउटपुट करने के लिए कॉल करें)

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

    या अगर आपको संदेश की आवश्यकता नहीं है तो आप प्रारूप में %s से भी दूर कर सकते हैं।

    +0

    धन्यवाद! हाँ मैंने ऐसा उल्लेख किया है कि मैं क्या वास्तव में देख रहा हूँ: - आरंभ तिथि - अंतिम तिथि - डेवलपर - प्रतिबद्धता - जोड़ा कोड - हटाए गए कोड आपका आदेश सिर्फ उन में से कुछ भी शामिल है। मुझे इस जानकारी के साथ जेनरेट टेबल की आवश्यकता है: दिनांक | डेवलपर नाम | जोड़ा गया | हटाए गए | Commit संदेश आखिरकार मुझे स्टार्ट और एंड डेट सेट अप करने की आवश्यकता नहीं है क्योंकि मैं एक्सेल में आसानी से इसे फ़िल्टर करने में सक्षम हूं। –

    +0

    एक ऐसी स्क्रिप्ट जो आपको अपनी इच्छित चीज़ों के करीब ले जाना चाहिए। दोबारा, गिट लॉग मैन पेज, विशेष रूप से फॉर्मेटिंग सेक्शन देखें, और इस स्क्रिप्ट को जो कुछ भी करने की ज़रूरत है उसे ठीक से ट्यून करें। –

    2
    git log --since="1 week ago" --until="now" \ 
    --format="%an,%ct,%s" > git_log_11_17_2012-11_24_2012.csv 
    

    ध्यान दें कि "1 सप्ताह पहले" वास्तव में "1 सप्ताह पहले" है कि पाठ के साथ किया जा सकता है (इसलिए यह एक वास्तविक दिनांक के लिए प्लेसहोल्डर हालांकि वह भी इस्तेमाल किया जा सकता है) धन्यवाद approxidate को

    +0

    धन्यवाद! पिछले एक के रूप में बिल्कुल वही। मुझे और परिष्कृत तालिका उत्पन्न करने की ज़रूरत है। बीटीडब्लू: अपने कमांड को सिर्फ एक लाइन के लिए संपादित करें .. अब यह कॉपी पेस्ट के लिए काम नहीं करता है। –

    +1

    मैंने "\" लाइन निरंतरता वर्ण जोड़ा। बीटीडब्ल्यू यह बिल्कुल पिछले जैसा नहीं है, उदाहरण के लिए "=" पिछले में गायब था (लेकिन मेरे पोस्ट के बाद जोड़ा गया ...) –

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