Skip to content

Commit 15cd227

Browse files
committed
Allow -S and -G to be used for searching
1 parent 7303bc5 commit 15cd227

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

  • .local/bin

.local/bin/gl

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
# While looking at the git log you can press CTRL+o to open it in a browser.
77
#
88
# Examples:
9-
# gl
10-
# gl --side
9+
# gl # Search commit messages and use -S for searching code
10+
# gl -G # Use -G instead of -S for searching code
11+
# gl --side # Show diffs side by side
1112
# gl [any flag that git log supports]
1213

1314
set -o errexit
@@ -53,11 +54,17 @@ export -f open_commit_url
5354

5455
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
5556
GIT_ARGS=("--color=always" "--date=short")
57+
GIT_LOG_SEARCH_MODE="-S"
5658

57-
# Handle displaying side by side on demand.
5859
for arg in "${@}"; do
5960
if [ "${arg}" = "--side" ]; then
61+
# Handle displaying side by side.
6062
export DELTA_FEATURES="${DELTA_FEATURES} side-by-side"
63+
elif [ "${arg}" = "-G" ]; then
64+
# Handle the search mode, -G is much slower on large repos but supports
65+
# regular expression searches and will return more results, but as a
66+
# default -S tends to produce less noise and more relevant results.
67+
GIT_LOG_SEARCH_MODE="-G"
6168
else
6269
GIT_ARGS+=("${arg}")
6370
fi
@@ -108,7 +115,7 @@ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
108115
${GIT_LOG_DEFAULT}
109116
else
110117
[[ \"\${query}\" =~ [A-Z] ]] && case= || case=\"--regexp-ignore-case\"
111-
(git log \${case} --pretty='${FORMAT_CODE}' ${GIT_ARGS_STR:-} -G \"\${query}\"
118+
(git log \${case} --pretty='${FORMAT_CODE}' ${GIT_ARGS_STR:-} ${GIT_LOG_SEARCH_MODE} \"\${query}\"
112119
git log \${case} --pretty='${FORMAT_MESSAGE}' ${GIT_ARGS_STR:-} --grep \"\${query}\") |
113120
sort --numeric-sort --reverse --unique --key 1,1 |
114121
${STRIP_TIMESTAMP}

0 commit comments

Comments
 (0)