Git Sizer Versions Save

Compute various size metrics for a Git repository, flagging those that might cause problems

v1.5.0

2 years ago

The emphasis of this release is making it easy to select exactly what references should be included in the analysis, and also to output counts of references by type (e.g., branches vs. tags vs. pull request heads).

What's new:

  • Allow several options to be set via gitconfig:
    • sizer.jsonVersion
    • sizer.threshold
    • sizer.names
    • sizer.progress
  • Add more reference selection options:
    • --no-branches (the opposite of --branches)
    • --no-tags (the opposite of --tags)
    • --no-remotes (the opposite of --remotes)
    • --notes/--no-notes
    • --stash/--no-stash
  • Allow references to be selected by prefix or by regular expression:
    • --include=PREFIX, --exclude=PREFIX
    • --include=/REGEXP/, --exclude=/REGEXP/
  • Make it possible to define groups of references via gitconfig:
    • refgroup.REFGROUP.name=NAME
    • refgroup.REFGROUP.include=PREFIX
    • refgroup.REFGROUP.includeRegexp=REGEXP
    • refgroup.REFGROUP.exclude=PREFIX
    • refgroup.REFGROUP.excludeRegexp=REGEXP
  • Make it possible to include/exclude references by refgroup:
    • --include=@REFGROUP, --exclude=@REFGROUP
  • Create some predefined refgroups: branches, tags, remotes, pulls, changes, notes, and stash.
  • Include, in the output, the numbers of references in each defined refgroup, including the predefined refgroups like branches and tags.

Internal changes:

  • Use a new pipe package for managing command pipelines. This fixes some error-handling paths.
  • Set up an action to run a linter over the code.
  • Clean up a bunch of linter-reported warnings.
  • Set up automated testing under Windows.
  • Build with the Go 1.17.3 toolchain.

v1.4.0

3 years ago

What's new:

  • Add support for building on and for Darwin:arm64.
  • Change git-sizer --help to return success.
  • Allow arbitrary references to be included/excluded from the analysis.
  • Use a safer method to locate the git executable.

Internal changes:

  • Upgrade to the Go 1.16 toolchain and the use of Go modules.
  • Better decouple the test and production code.

v1.3.0

5 years ago

What's new:

  • Suppress the warning that info/grafts is deprecated
  • Handle commits and tags that have no log messages
  • Generate better JSON output (selected using --json-version=2). Add:
    • A prose description of each quantity
    • The quantity's value and units
    • The prefix style that should be used for the quantity
    • The "reference value" against which the value is compared
    • The "level of concern", as a floating-point number
    • The OID and description of the object in question, when applicable

v1.2.0

6 years ago

Changes since release 1.1.0:

  • Lower the threshold for the maximum tree size to 1000
  • Mention git-annex as another possibility (along with Git-LFS) for dealing with large files
  • Add a --version option to display the version of git-sizer
  • Don't consider a "maximum tag depth" of 1 to be concerning

Fixes:

  • Disable grafts and replace references when analyzing repository
  • Change the instructions to work even if git-sizer is not in PATH

v1.1.0

6 years ago

Changes since release 1.0.0:

  • Don't count the root tree in MaxPathDepth (this probably agrees better with user expectations)

Fixes:

  • Fix formatting of README
  • Fix failure when started from a subdirectory within the working tree or from a submodule
  • Specify the minimum required Git version (which is 2.6) in the README
  • Prevent a panic that could occur if one annotated tag pointed at another and they were not processed in parent→child order
  • Add more automated tests

v1.0.0

6 years ago

This is the first public release of git-sizer.