* The README.md contained inline HTML for the contributors, backers,
and sponsors section. This technically works when the README.md is
rendered within a webpage, but other Markdown readers, such as those
that are built into GUIs, may or may not render them correctly.
This changes those inline HTML hyperlinks to pure Markdown as
specified by Markdown Lint rule MD033. For more info, see:
https://github.com/DavidAnson/markdownlint/blob/v0.23.1/doc/Rules.md#md033
* Fixes some other small whitespace and inconsistency issues
* Added the ability to see git stats both per timezone, as well as
by author per timezone. It should respect all global options.
* Adjusted the non-interactive menu as it was missed during the
reorganization effort
* Updated tests, README.md, man page, and screenshots to reflect the
new changes
* Resolves#128
* Before, we had various functions in a different order from the
interactive menu in the code base. This changes our ordering of
the functions and aligns the interactive menu, man pages, README.md,
and code base so that they are all following the same paradigm.
Also fixes some minor missing keywords
* With pull request #131, we add new functionality for both interactive and non-interactive modes.
This change updates the README.md to reflect our new menu option for outputting the stats in CSV
* Users can now switch between allowing merge commits in their stats,
showing only merges in the stats, or ignoring merge commits in
the stats all together.
Showing merges might be good for people who wish to see the entire
history as git shows it by default. For this, setting the new variable
_GIT_MERGE_VIEW to enable will show merge commits in the stats together
with normal commits.
Showing only merges might be useful for people who wish to see how
much of their git history is taken up by merges alone. It can be useful
for re-evaluating a particular workflow. For this, setting the new var
_GIT_MERGE_VIEW to exclusive will show only merge commits in the stats.
The default action is to not display merge commits.
Resolves#88
* Added information in the README.md to show how to exclude files
from the stats by utilizing git pathspec
* Updated the built-in help, manpage, and tests to reflect how git
pathspec can be utilized on files and folders
* Removed the \r tokens that were put in README.md from Windows
Fixes#61
* Added info that demonstrates this utility has the ability to
choose between running this as "git-quick-stats" or
"git quick-stats" as requested in Issue #77
* Adjusted Table of Contents to show all sections and subsections
of the README.md
* Cleaned up some grammar and added some extra info in various
places
* Ran through VS Code's markdownlint extension and adjusted some
syntax accordingly
* The GPG settings don't play well with OS X if you don't have
certain tools installed, so they were removed from the git log
format settings for the JSON output.
* Pictures have been updated to reflect the new menu option.
* The main feature of this commit is addressing the feature request
of adding the ability to save the output as a file to use in other
tools. I decided to use the JSON format as it's relatively straight
forward and easy to create thanks to a few Google searches.
The original feature request was to add the ability to output any of
the options as a JSON/XML/YAML format. That said, because this entire project
is relying only on built-in shell utilities, we kind of have to format stuff
ourselves in relatively primitive tools such as awk, sed, and bash in order
to adhere to the "spirit" of this codebase.
It is possible to use Perl and/or Python, but that would defeat the purpose
of this, in my opinion. The downside of not using these tools is that it
might not be as robust and battle hardened as the others.
AS SUCH, THIS FEATURE IS CURRENTLY EXPERIMENTAL.
As people provide feedback, we can adjust this and possibly extend it to
more options. For now, it respects _GIT_SINCE and _GIT_UNTIL. It does not
respect variable expansion in paths, though, so saving it to a location such
as "${my_save_location}" will fail.
* Made some of the variables a bit more robust by utilizing the -r flag to
make the variables readonly. It should be noted that "local readonly" does
not work, nor does "readonly local". The best way to do this is either via
"local -r foo=bar" or "local foo=bar && readonly bar".
* Fixed a few comments describing how functions work.
* Added a .gitignore.
* Changed all functions to adhere to camelCase style for no real reason
other than consistency and a few other minor things.
* Closes#31
* This sets the newly proposed theme as the main theme. In order to
switch back to the legacy theme, set _MENU_THEME to legacy.
This feature is currently an experimental feature and may change
in the future.
* Fixes documentation and updates test to reflect newly changed theme.
* You can now switch between the default theme and an alternative theme
for those who would like a different look to the interactive menu.
In order to set this, simply do export _MENU_THEME=alternative. Anything
that isn't "alternative" will simply fall back to the default menu option.
* Fixed merge conflicts based on the latest master branch which added the
contribution stats by branch option.
* Fixed tests, updated docs, and all that fun stuff.
* The previous commands were Lower CamelCase style and had no equivalent
short options. If you wanted to see the branch tree via non-interactive
mode, you always needed to supply "branchTree" as the passing argument to
the git-quick-stats script.
This commit changes the argument style to be more akin to the POSIX and GNU
styles of arguments commonly seen in many other applications. As of this
commit, there is no compatibility with legacy commands, so those who have
been using the old commands will unfortunately need to get familiar with the
new ones. All documentation and tests have been updated accordingly to
reflect the new changes.
* The main interactive loop contained a non-variable constant that was only
getting parsed correctly due to legacy fallback behavior. This commit fixes
the main loop and cleans up the formatting a little bit.
* Added -r to more areas where read reads in a variable to help prevent
it from mangling backslashes.
* Changed everything to use bash's built-in [[ notation and did some minor
formatting changes to reduce the LOC.
* Removed some unnecessary echo statements and did some other minor cleanup.
* In some situations, the awk statements in the functions commitsByMonth,
commitsByDay, and commitsByHour attempt to divide by zero and display
an error to the user. To invoke this bug, checkout any of the previous
commits and attempt to see commits by hour from some user who has never
committed to this repository.
This commit fixes this bug by making sure the awk statement only ever
executes when the total commits is greater than zero.
* Added a utility checker to make sure that the user has all of the necessary
tools in their path in order to run this script. If they do not exist, it
exits and informs the user that this script cannot locate them in PATH.
* Adjusted shell logic to prevent double negatives from confusing developers
as ! -z is technically read as something akin to "not has no value"
* Changed some statements to utilize safer and more predictable bash-isms
* Minor white space fixes and adjusted the README.md slightly
* Color was originally done with ANSI escape characters for defining
different "expected" colors. However, this is not uniform across all
terminals. To improve what the designers of this program expect
colors to be, escape codes were replaced with tput equivalents.
For more information, see the GNU manual here:
https://www.gnu.org/software/termutils/manual/termutils-2.0/html_chapter/tput_1.html
* Limited scope of variables to their local scope instead of having them
be global
* Renamed menu variables to aid in readability and adjusted formatting
slightly to be more uniform
* Fixed a bug where option_picked was assigning an array to a string
and relying on the default behavior of the shell to interpret it
* Added the -r option to "read" for safety, as read without -r will
interpret backslashes before spaces/line feeds, which tends to
be an unintended side effect
* Updated all backtick notation to the newer POSIX $(..) notation for
aid in readability when paired next to single quotes and improved
safety
* Updated the README.md to include missing utilities and fixed some
minor formatting issues