mirror of
https://github.com/wfxr/forgit.git
synced 2026-09-10 07:16:23 -04:00
Fix ga, gsp & gcf with older git versions (#335)
Removes the usage of --pathspec-file-nul (which is not available in older git versions) in favor of storing the file names passed to the git command in an array instead of a string.
This commit is contained in:
parent
131f2c1f66
commit
1c34d0d54d
|
|
@ -342,12 +342,15 @@ _forgit_add() {
|
|||
--bind=\"alt-e:execute-silent($FORGIT edit_add_file {})+refresh-preview\"
|
||||
$FORGIT_ADD_FZF_OPTS
|
||||
"
|
||||
files=$(git -c color.status=always -c status.relativePaths=true status -su |
|
||||
files=()
|
||||
while IFS='' read -r file; do
|
||||
files+=("$file")
|
||||
done < <(git -c color.status=always -c status.relativePaths=true status -su |
|
||||
grep -F -e "$changed" -e "$unmerged" -e "$untracked" |
|
||||
sed -E 's/^(..[^[:space:]]*)[[:space:]]+(.*)$/[\1] \2/' |
|
||||
FZF_DEFAULT_OPTS="$opts" fzf |
|
||||
_forgit_get_single_file_from_add_line)
|
||||
[[ -n "$files" ]] && echo "$files"| tr '\n' '\0' | _forgit_git_add --pathspec-file-nul --pathspec-from-file - && git status -su && return
|
||||
[[ "${#files[@]}" -gt 0 ]] && _forgit_git_add "${files[@]}" && git status -su && return
|
||||
echo 'Nothing to add.'
|
||||
}
|
||||
|
||||
|
|
@ -458,9 +461,13 @@ _forgit_stash_push() {
|
|||
$FORGIT_STASH_PUSH_FZF_OPTS
|
||||
"
|
||||
# Show both modified and untracked files
|
||||
files=$(git ls-files --exclude-standard --modified --others | FZF_DEFAULT_OPTS="$opts" fzf --preview="$FORGIT stash_push_preview {}")
|
||||
[[ -z "$files" ]] && return 1
|
||||
echo "${files[@]}" | tr '\n' '\0' | _forgit_git_stash_push ${msg:+-m "$msg"} -u --pathspec-file-nul --pathspec-from-file -
|
||||
files=()
|
||||
while IFS='' read -r file; do
|
||||
files+=("$file")
|
||||
done < <(git ls-files --exclude-standard --modified --others |
|
||||
FZF_DEFAULT_OPTS="$opts" fzf --preview="$FORGIT stash_push_preview {}")
|
||||
[[ "${#files[@]}" -eq 0 ]] && return 1
|
||||
_forgit_git_stash_push ${msg:+-m "$msg"} -u "${files[@]}"
|
||||
}
|
||||
|
||||
# git clean selector
|
||||
|
|
@ -651,8 +658,12 @@ _forgit_checkout_file() {
|
|||
--preview=\"$FORGIT checkout_file_preview {}\"
|
||||
$FORGIT_CHECKOUT_FILE_FZF_OPTS
|
||||
"
|
||||
files="$(git ls-files --modified "$(git rev-parse --show-toplevel)"| FZF_DEFAULT_OPTS="$opts" fzf)"
|
||||
[[ -n "$files" ]] && echo "$files" | tr '\n' '\0' | _forgit_git_checkout_file --pathspec-file-nul --pathspec-from-file -
|
||||
files=()
|
||||
while IFS='' read -r file; do
|
||||
files+=("$file")
|
||||
done < <(git ls-files --modified "$(git rev-parse --show-toplevel)" |
|
||||
FZF_DEFAULT_OPTS="$opts" fzf)
|
||||
[[ "${#files[@]}" -gt 0 ]] && _forgit_git_checkout_file "${files[@]}"
|
||||
}
|
||||
|
||||
_forgit_git_checkout_branch() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue