इस प्रोजेक्ट के बारे में
`git-stats` एक कमांड-लाइन टूल है जो Rust में लिखा गया है और `git log` जानकारी को पार्स करके एकत्रित कमिट आँकड़े उत्पन्न करता है। यह git के शुद्ध Rust कार्यान्वयन `gitoxide` का उपयोग करके सीधे रिपॉजिटरी पढ़ता है, जिससे git बाइनरी की आवश्यकता नहीं होती।
## विशेषताएँ
- **एकत्रित आँकड़े**: लेखक द्वारा कमिट्स का सारांश, जिसमें कमिट्स की संख्या, बदली फ़ाइलें, सम्मिलन, विलोपन और शुद्ध पंक्ति परिवर्तन शामिल हैं।
- **संशोधन श्रेणियाँ**: एकल संशोधन, `A..B`, और `A...B` श्रेणियों का समर्थन करता है, जिनमें अंतिम बिंदु refs, छोटे हैश, `@{n}`, आदि के रूप में निर्दिष्ट होते हैं।
- **फ़िल्टरिंग**: लेखक (regex), दिनांक सीमा (`--since`, `--until`), और संशोधन श्रेणी द्वारा सीमित करें।
- **समीक्षा ट्रैकिंग**: वैकल्पिक रूप से `Acked-by`, `Tested-by`, और `Reviewed-by` git ट्रेलरों के आधार पर समीक्षक/परीक्षक दिखाता है।
- **सॉर्टिंग**: किसी भी कॉलम (लेखक, कमिट्स, फ़ाइलें, सम्मिलन, विलोपन, शुद्ध) द्वारा आरोही या अवरोही क्रम में सॉर्ट करें।
- **ईमेल प्रदर्शन**: वैकल्पिक रूप से लेखक के ईमेल पते दिखाएं।
## स्थापना
crates.io से स्थापित करें:
```
cargo install git-stats --locked
```
या पूर्व-निर्मित बाइनरी के लिए `cargo-binstall` के साथ:
```
cargo binstall git-stats
```
Arch Linux पर, AUR पैकेज `git-stats` (स्रोत) या `git-stats-bin` (पूर्व-निर्मित) का उपयोग करें।
`mise` के साथ, चेकसम और SLSA प्रोवेंस सत्यापन के साथ पूर्व-निर्मित बाइनरी स्थापित करें:
```
mise use -g github:lukehsiao/git-stats
```
## उपयोग
```
Usage: git-stats [OPTIONS] [revision-range]
Arguments:
[revision-range] Show only commits in the specified revision range [default: HEAD]
Options:
-e, --email Show the email address of each author
-r, --reviews Show who reviewed/tested commits based on git trailers
-s, --sort <SORT> What column to sort by [default: commits] [possible values: author, commits, files, insertions, deletions, net]
--reverse Reverse the sorting order
-a, --author <AUTHOR> Limit commits to those matching a regex pattern
--since <SINCE> Limit to commits more recent than a date
--until <UNTIL> Limit to commits older than a date
-h, --help Print help
-V, --version Print version
```
उदाहरण आउटपुट:
```
$ git stats -r origin..HEAD
Author Commits Changed Files Insertions Deletions Net Δ
Luke Hsiao 67 117 +2616 -1126 +1490
dependabot[bot] 31 62 +203 -267 -64
Total 98 179 +2819 -1393 +1426
Reviewer/Tester Commits
Luke Hsiao 1
```
## नोट्स
- **संशोधन श्रेणियाँ**: केवल सरल रूपों का समर्थन किया जाता है; विदेशी gitrevisions(7) सिंटैक्स की व्याख्या नहीं की जाती।
- **दिनांक फ़िल्टरिंग**: ISO 8601, RFC 2822, यूनिक्स टाइमस्टैम्प, और "2 weeks ago" जैसी सापेक्ष तिथियाँ स्वीकार करता है। फ़िल्टरिंग कमिटर दिनांक पर होती है।
- **लेखक मिलान**: `git log --author` के विपरीत, जो कच्चे हेडर का उपयोग करता है, mailmap-हल किए गए लेखक के विरुद्ध मिलान करता है।
- **मर्ज कमिट्स**: कमिट्स के रूप में गिने जाते हैं लेकिन कोई पंक्ति/फ़ाइल परिवर्तन नहीं जोड़ते।
- **शैलो क्लोन**: काम करते हैं, लेकिन आँकड़े पूर्ण क्लोन से भिन्न हो सकते हैं; एक चेतावनी मुद्रित होती है।
- **सबमॉड्यूल**: एकल बदली फ़ाइलों के रूप में गिने जाते हैं, git के नाम बदलने के हैंडलिंग से मामूली अंतर के साथ।
- **पंक्ति गणना**: gitoxide के डिफ इंजन से, कुछ हंक्स पर git से थोड़ा भिन्न हो सकती है।
- **SHA-256 रिपॉजिटरी**: समर्थित नहीं (gitoxide सीमा)।
- **कमिट एन्कोडिंग**: गैर-UTF-8 एन्कोडिंग परिवर्तित नहीं की जाती; लेखक नामों में प्रतिस्थापन वर्ण दिख सकते हैं।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.