Status bar git state not working in directories with a tilde in its path
- iTerm2 version: 3.3.7 and 3.3.8beta1
- OS version: MacOS 10.15.1
Detailed steps to reproduce the problem:
- Create a directory with tilde character in its name:
mkdir '~test'
- Init a repo in it
- Enter the directory
What happened: Git state does not show git status
What should have happened: It should show git status
My particular workflow is to store my Code
directory on iCloud drive. The "physical" location of iCloud drive on Macs is ./Library/Mobile Documents/com~apple~CloudDocs
(notice the tilde characters in the path).
In the debug log, I found some relevant information:
1576261627.707039 iTermGitPoller.m:82 (-[iTermGitPoller poll]): <iTermGitPoller: 0x6000002164e0 dir=/Users/mweinert/~test last=2019-12-13 18:27:07 +0000>: poller running
1576261627.707051 iTermStatusBarGitComponent.m:705 (-[iTermStatusBarGitComponent gitPollerShouldPoll:]): returning YES
1576261627.707067 iTermGitPoller.m:97 (-[iTermGitPoller poll]): <iTermGitPoller: 0x6000002164e0 dir=/Users/mweinert/~test last=2019-12-13 18:27:07 +0000>: POLL: request path /Users/mweinert/~test
1576261627.707095 iTermGitPoller.m:99 (-[iTermGitPoller poll]): <iTermGitPoller: 0x6000002164e0 dir=/Users/mweinert/~test last=2019-12-13 18:27:07 +0000>: Using worker <iTermGitPollWorker: 0x6000034e2400>
1576261627.707102 iTermGitPollWorker.m:100 (-[iTermGitPollWorker requestPath:completion:]): git poll worker for bucket 1: got request for path /Users/mweinert/~test
1576261627.707109 iTermGitPollWorker.m:116 (-[iTermGitPollWorker requestPath:completion:]): git poll worker for bucket 1: This is a new path. Enqueue request for /Users/mweinert/~test
1576261627.707125 iTermGitPollWorker.m:141 (-[iTermGitPollWorker requestPath:completion:]): git poll worker for bucket 1: Using command runner <iTermCommandRunner: 0x600000a6f950 pid=82057> for path /Users/mweinert/~test
[...]
1576261627.780028 iTermGitPollWorker.m:226 (-[iTermGitPollWorker handleBlock]): git poll worker for bucket 1: Parsed dict:
{
"/Applications/iTerm.app/Contents/Resources/iterm2_git_poll.sh" = "line 59: cd: /Users/mweinert//Users/mweinerttest: No such file or directory";
ADDS = " 0";
BRANCH = "";
DELETES = " 0";
DIRECTORY = "/Users/mweinert//Users/mweinerttest";
DIRTY = clean;
PULL = "";
PUSH = "";
XCODE = "";
fatal = "not a git repository (or any of the parent directories): .git";
}
Looks like the tilde character got expanded to homedir path when it was passed or parsed in the iterm2_git_poll.sh script.
Edited by Mike Weinert