[BUG] typo DWIMery with alias broken (cd to random dir)
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- Jan 26, 2016, 07:37 UTC
- Message-ID
- <56A72235.9080602@drmicha.warpmail.net>
Hi there,
with current next (989ee58 plus local additions) it seems that typo DWIMery with aliases is broken, see below.
It appears that the typo DWIMery is broken only when there is a unique automatic DWIM substitution for a mistyped alias.
I haven't bisected yet, but I suspect this to be related to recent changes regarding the environment in which commands/aliases are started (though this happens without extra work trees), so I'm cc'ing an expert in that area. Funny, though, that my user name shows up...
I think the reason is that git.c's handle_alias() (or something else) calls restore_env() multiple times, and restore_env frees orig_cwd such that subsequent restore_env(0) with external_alias=0 tries to cd to a random location.
I have no idea whether orig_cwd=0 after freeing or something else would be the proper fix.
Michael
LANG=C git sss WARNING: You called a Git command named 'sss', which does not exist. Continuing under the assumption that you meant 'ss' in 2.0 seconds automatically... fatal: could not move to git@drmicha.warpmail.net: No such file or directory [mjg@skimbleshanks git]✗ LANG=C git ss ## HEAD (no branch) ?? a ?? a.patch ?? c2d.sh [mjg@skimbleshanks git]✓ LANG=C git statu -sb git: 'statu' is not a git command. See 'git --help'.
Did you mean one of these?
status
stage
stash
[mjg@skimbleshanks git]✗ LANG=C git statuss -sb
WARNING: You called a Git command named 'statuss', which does not exist.
Continuing under the assumption that you meant 'status'
in 2.0 seconds automatically...
## HEAD (no branch)
?? a
?? a.patch
?? c2d.sh