Skip to content

v0.2.0

Choose a tag to compare

@nomisreual nomisreual released this 24 Apr 20:36
· 113 commits to main since this release

Release Notes v0.2.0

The full changelog can be found here.

What's Changed

  1. .traverse() of GitAlert does not invoke .check() itself. Hence,
    .check() needs to be invoked separately (breaking change).
  2. .check() now checks all repositories in the list of repositories and
    updates their entry accordingly (breaking change).
  3. .repos of Repositories is now of the following form:
    dict[dict[str, str]] = []. Each key in the directory is equal to the
    path of the repository. Hence, uniquely identifying repositories in the
    dictionary and allowing for faster look-ups.
  4. .traverse() performance improvement by looking for .git
    directories in each directory instead of looping through directories
    until a .git directory is found. This also means that nested git
    repositories (.git directories in sub-directories of a directory
    containing a .git directory) are excluded. In general, nesting git
    repositories is not a good idea and preliminary testing showed
    significant performance increases, hence the change.
  5. New feature: it is now possible to additionally pass a list of
    directories that shall be excluded by git_alert. To be excluded paths
    can be passed in with a new flag: --ignore /path/one:/path/two
  6. Git Alert now keeps track of the number of found repositories and the
    number of dirty repositories and prints a short summary containing this
    information.

Reasoning

  • No. 1 and No. 2 separate traversing the file system from checking
    individual found repositories.
  • No. 3 The new representation of repositories allows for easier access
    to data on repositories. Also looking up one specific repository is now
    faster.
  • No. 4 Go burr!
  • No. 5 Excluding directories reduces runtime.
  • No. 6 Enables short descriptive summaries and also enables new angles
    for testing.