git-effort
Analyze effort per file in git repository
TLDR
Display each file in the repository, showing commits and active days
Display files modified by a specific number of commits or more, showing commits and active days
Display files modified by a specific author, showing commits and active days
Display files modified since a specific time/date, showing commits and active days
Display only the specified files or directories, showing commits and active days
Display all files in a specific directory, showing commits and active days
SYNOPSIS
git effort [options] [
PARAMETERS
--author
Limit the report to commits made by the given author.
--changes
Show the raw changes for each file.
--no-merges
Ignore merges when calculating the effort.
--include=
Include specific paths in the analysis.
--exclude=
Exclude specific paths from the analysis.
--format=
Specify the output format (text, csv, json). Defaults to text.
Any option that can be passed to git rev-list, such as --since, --until, or branch names.
[
Limit the analysis to specific files or directories.
DESCRIPTION
git-effort is a command-line tool that helps analyze the effort, measured by lines changed, over time for each file in a Git repository. It calculates the total lines added and removed, as well as the number of commits that have affected each file.
The tool iterates through the Git history, examining each commit and accumulating changes to files. The data is then presented, allowing insights into which files have seen the most churn and how effort has been distributed across the project. The report focuses on the lines of code changed for the files, grouping commits from the same developer to reduce the noise.
CAVEATS
Large repositories with extensive history can take a considerable amount of time to analyze. Accuracy depends on consistent commit history.
EXAMPLE USAGE
- Show effort for all files: git effort
- Show effort for a specific file: git effort src/myfile.c
- Show effort for commits in the last month: git effort --since='1 month ago'
- Show effort for commits by a specific author: git effort --author='John Doe'
HISTORY
git-effort is an independent tool created to provide metrics based on existing git features. Its development history isn't directly tied to the Git core project, but rather driven by external developers seeking to gain project insights. Usage has grown within software development teams seeking to identify hotspots in the code, understand developer contributions, and estimate future development efforts based on historical data.
SEE ALSO
git log(1), git blame(1), git rev-list(1)