Skip to content

Commit

Permalink
Remove deferred execution in _forgit_checkout_commit
Browse files Browse the repository at this point in the history
  • Loading branch information
sandr01d committed Oct 28, 2023
1 parent 54a0588 commit 70b6fb6
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions bin/git-forgit
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,11 @@ _forgit_extract_sha() {
grep -Eo '[a-f0-9]+' | head -1 | tr -d '[:space:]'
}

# extract the first git sha and copy it to the clipboard
_forgit_yank_sha() {
echo "$1" | _forgit_extract_sha | ${FORGIT_COPY_CMD:-pbcopy}
}

_forgit_pager=${FORGIT_PAGER:-$(git config core.pager || echo 'cat')}
_forgit_show_pager=${FORGIT_SHOW_PAGER:-$(git config pager.show || echo "$_forgit_pager")}
_forgit_diff_pager=${FORGIT_DIFF_PAGER:-$(git config pager.diff || echo "$_forgit_pager")}
Expand Down Expand Up @@ -519,25 +524,27 @@ _forgit_checkout_tag() {
$git_checkout "$tag"
}

_forgit_checkout_commit_preview() {
echo "$1" | _forgit_extract_sha | xargs -I% git show --color=always % | $_forgit_show_pager
}

# git checkout-commit selector
_forgit_checkout_commit() {
_forgit_inside_work_tree || return 1
local git_checkout cmd opts graph
local git_checkout opts graph
git_checkout="git checkout $FORGIT_CHECKOUT_COMMIT_GIT_OPTS"
[[ $# -ne 0 ]] && { $git_checkout "$@"; return $?; }
cmd="echo {} | $_forgit_extract_sha |xargs -I% git show --color=always % | $_forgit_show_pager"
opts="
$FORGIT_FZF_DEFAULT_OPTS
+s +m --tiebreak=index
--bind=\"ctrl-y:execute-silent(echo {} | $_forgit_extract_sha | ${FORGIT_COPY_CMD:-pbcopy})\"
--preview=\"$cmd\"
--bind=\"ctrl-y:execute-silent($FORGIT yank_sha {})\"
$FORGIT_CHECKOUT_COMMIT_FZF_OPTS
"
graph=--graph
[[ $FORGIT_LOG_GRAPH_ENABLE == false ]] && graph=
# shellcheck disable=2086
eval "git log $graph --color=always --format='$_forgit_log_format' $_forgit_emojify" |
FZF_DEFAULT_OPTS="$opts" fzf | eval "$_forgit_extract_sha" | xargs -I% $git_checkout % --
git log $graph --color=always --format="$_forgit_log_format" ${_forgit_emojify:+$_forgit_emojify} |
FZF_DEFAULT_OPTS="$opts" fzf --preview="$FORGIT checkout_commit_preview {}" | _forgit_extract_sha | xargs -I% $git_checkout % --
}

_forgit_branch_delete_preview() {
Expand Down Expand Up @@ -716,8 +723,10 @@ public_commands=(
private_commands=(
"blame_preview"
"branch_delete_preview"
"checkout_commit_preview"
"ignore_preview"
"revert_preview"
"yank_sha"
)

cmd="$1"
Expand Down

0 comments on commit 70b6fb6

Please sign in to comment.