Repository navigation
v0.2.0
Release Notes v0.2.0
The full changelog can be found here.
What's Changed
.traverse()ofGitAlertdoes not invoke.check()itself. Hence,
.check()needs to be invoked separately (breaking change)..check()now checks all repositories in the list of repositories and
updates their entry accordingly (breaking change)..reposofRepositoriesis 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..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.- 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 - 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.