diff --git a/bin/git-standup b/bin/git-standup
index 4bc6387..d2f0ad4 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 2a5ce0a..5078a8c 100644
--- a/man/git-standup.1
+++ b/man/git-standup.1
@@ -55,6 +55,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 e229de8..50b0a36 100644
--- a/man/git-standup.html
+++ b/man/git-standup.html
@@ -57,6 +57,7 @@
SYNOPSIS
DESCRIPTION
OPTIONS
+ GIT CONFIGS
EXAMPLES
AUTHOR
REPORTING BUGS
@@ -143,6 +144,14 @@ When -B is specific, the limitation is applied in the branch level
if each of your 3 repositories have 2 branches, 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:
diff --git a/man/git-standup.md b/man/git-standup.md index 7419aab..5956b50 100644 --- a/man/git-standup.md +++ b/man/git-standup.md @@ -69,6 +69,13 @@ When `-B` is specific, the limitation is applied in the branch level. For insta if each of your 3 repositories have 2 branches, `git standup ... -B -n 1` will display 6 commits at most. +## GIT CONFIGS + +You can configure a implicit -w