Re: [PATCH v2] git-jump: pick a mode automatically when invoked without arguments
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 21, 2026, 01:30 UTC
- Message-ID
- <xmqqecj535wx.fsf@gitster.g>
- In-Reply-To
- <xmqqik8h36al.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 15 quoted lines
>> +mode_auto() {
>> + if test "$(git rev-parse --is-inside-work-tree 2>/dev/null)" != "true"; then
>> + usage >&2
>> + exit 1
>> + fi
>
> That looks like a basic safety measure, which is good.
>
>> + if test -n "$(git ls-files -u "$@")"; then
>> + mode_merge "$@"
>> + elif ! git diff --quiet "$@"; then
>> + mode_diff "$@"
>> + elif ! git diff --check >/dev/null 2>&1; then
>
> Shouldn't this "diff --check" be restricted by "$@" if given?>> + mode_ws "$@"
If there are any unstaged changes (possibly with whitespace errors), 'git diff --quiet' would exit with non-zero, so "elif ! git diff --quiet" would be taken and we do mode_diff. The user cannot rely on "auto" to trigger mode_ws to check whitespace errors in the working tree files because of this. If there is no unstaged changes, 'git diff --quiet' woudl exit with zero, so the control comes to "git diff --check", but then there is nothing mode_ws to work on in that case, right? So it is not clear to me in what situation this auto selection of mode_ws would help us.
Show 5 quoted lines
>> + else >> + usage >&2 >> + exit 1 >> + fi >> +}