diff --git a/bin/git-standup b/bin/git-standup index c32c92102..71f8ccaed 100755 --- a/bin/git-standup +++ b/bin/git-standup @@ -63,6 +63,8 @@ fi # which may fail on systems lacking tput or terminfo set -e +RANGE_SPECIFIED= + while getopts "hgfBd:a:w:m:D:n:L" opt; do case $opt in h) @@ -77,7 +79,8 @@ while getopts "hgfBd:a:w:m:D:n:L" opt; do fi ;; d) - test -n "$SINCE" && warn "-d option is conflict with -w" + test -n "$RANGE_SPECIFIED" && warn "-d option is conflict with -w" + RANGE_SPECIFIED=yes if [ "$OPTARG" -lt 1 ]; then >&2 echo "Specify days less than one is invalid" exit 1 @@ -85,10 +88,11 @@ while getopts "hgfBd:a:w:m:D:n:L" opt; do SINCE="$OPTARG days ago" ;; w) - if [ -n "$SINCE" ]; then + if [ -n "$RANGE_SPECIFIED" ]; then warn "-w option is conflict with -d" continue fi + RANGE_SPECIFIED=yes week_range=${OPTARG} week_start="${week_range%%-*}" @@ -149,13 +153,26 @@ if [[ $# -gt 0 ]]; then fi AUTHOR=${AUTHOR:="$(git config user.name)"} -SINCE=${SINCE:=yesterday} -UNTIL=${UNTIL:=today} FETCH_LAST_COMMIT=${FETCH_LAST_COMMIT:=false} MAXDEPTH=${MAXDEPTH:=2} GIT_PRETTY_FORMAT="%Cred%h%Creset - %s %Cgreen(%cd) %C(bold blue)<%an>%Creset $GIT_PRETTY_FORMAT" GIT_DATE_FORMAT=${GIT_DATE_FORMAT:=relative} +# Handle config of implicit week +IMPLICIT_WEEK=$(git config --get git-extras.standup.implicit-week) +if [[ -z "$RANGE_SPECIFIED" ]] && [[ -n "${IMPLICIT_WEEK}" ]]; then + week_start=${IMPLICIT_WEEK%%-*} + week_end=${IMPLICIT_WEEK##*-} + shopt -s nocasematch + if [[ "$week_start" == "$(LC_ALL=C date +%a)" ]]; then + SINCE="last $week_end" + fi + UNTIL=today +else + SINCE=${SINCE:=yesterday} + UNTIL=${UNTIL:=today} +fi + GIT_LOG_COMMAND="git --no-pager log \ --no-merges --since \"$SINCE\" diff --git a/man/git-standup.1 b/man/git-standup.1 index 2c992e87d..8d929fd7f 100644 --- a/man/git-standup.1 +++ b/man/git-standup.1 @@ -1,6 +1,6 @@ .\" generated with Ronn-NG/v0.9.1 .\" http://github.com/apjanke/ronn-ng/tree/0.9.1 -.TH "GIT\-STANDUP" "1" "August 2021" "" "Git Extras" +.TH "GIT\-STANDUP" "1" "April 2022" "" "Git Extras" .SH "NAME" \fBgit\-standup\fR \- Recall the commit history .SH "SYNOPSIS" @@ -51,6 +51,13 @@ Display the commits in branch groups\. \-n number\-of\-commits .P Limit the number of commits displayed per group\. By default, the limitation is applied in the repository level\. For example, if you have 3 repositories under the current directory, \fBgit standup \|\.\|\.\|\. \-n 1\fR will show you 3 commits at most\. When \fB\-B\fR is specific, the limitation is applied in the branch level\. For instance, if each of your 3 repositories have 2 branches, \fBgit standup \|\.\|\.\|\. \-B \-n 1\fR will display 6 commits at most\. +.SH "GIT CONFIGS" +You can configure a implicit \-w \fIweekstart\-weekend\fR, which is superseded if \-w or \-d is given on the command line\. Note that the \fIweekstart\-weekend\fR must be specified, they don\'t have any default values as the \fB\-w\fR flag has\. +.IP "" 4 +.nf +$ git config \-\-global git\-extras\.standup\.implicit\-week "Mon\-Fri" +.fi +.IP "" 0 .SH "EXAMPLES" This shows your commits since yesterday: .IP "" 4 diff --git a/man/git-standup.html b/man/git-standup.html index 0d171400f..47c08e008 100644 --- a/man/git-standup.html +++ b/man/git-standup.html @@ -57,6 +57,7 @@ SYNOPSIS DESCRIPTION OPTIONS + GIT CONFIGS EXAMPLES AUTHOR REPORTING BUGS @@ -136,6 +137,14 @@
git standup ... -B -n 1 will
display 6 commits at most.
+You can configure a implicit -w weekstart-weekend, which is superseded if -w or -d is given on the command line.
+Note that the weekstart-weekend must be specified, they don't have any default values as the -w flag has.
$ git config --global git-extras.standup.implicit-week "Mon-Fri"
+
+
This shows your commits since yesterday:
@@ -198,7 +207,7 @@