본문으로 건너뛰기

vscode-server 사용 중 extensions/git/dist/askpass.sh: No such file or directory 오류

· 약 4분
David Lee

문제#

askpass.sh: No such file or directory#

docusaurus 블로그를 yarn deploy 했더니 도중에 아래와 같은 오류가 발생했습니다.

CMD: git commit -m "Deploy website - based on 1032e9050a07e7a6ca19a5a1576523a3af135bd2" (code: 0)
Password for 'https://civilizeddev@github.com': fatal: cannot run /home/david/.vscode-server/bin/3866c3553be8b268c8a7f8c0482c0c0177aa8bfa/extensions/git/dist/askpass.sh: No such file or directory

askpass.sh 파일을 찾을 수 없다는 오류입니다.

조사 과정#

해당 경로에 파일이 진짜로 없는가?#

먼저 진짜로 그 파일이 없는지 찾아봤습니다. 진짜로 없었습니다.

그런데 놀라운 사실을 발견했는데, 해당 파일은 다른 경로에 있었습니다.

note

~/.vscode-server/bin/7f6ab5485bbc008386c4386d08766667e155244e/extensions/git/dist/askpass.sh

.vscode-server/bin/ 아래의 해시 값이 다른 경로가 만들어져 있었는데요.

아무래도 vscode-server의 버그가 아닌지 의심이 갔습니다.

해당 경로는 어디에서 지정되나?#

혹시 환경변수에 PATH가 잡혀있는지 찾아봤습니다.

$ env | grep 3866c3553be8b268c8a7f8c0482c0c0177aa8bfa
VSCODE_GIT_ASKPASS_NODE=/home/david/.vscode-server/bin/3866c3553be8b268c8a7f8c0482c0c0177aa8bfa/nodeGIT_ASKPASS=/home/david/.vscode-server/bin/3866c3553be8b268c8a7f8c0482c0c0177aa8bfa/extensions/git/dist/askpass.shVSCODE_GIT_ASKPASS_MAIN=/home/david/.vscode-server/bin/3866c3553be8b268c8a7f8c0482c0c0177aa8bfa/extensions/git/dist/askpass-main.js

진짜로 뭐가 있네요. 잘못된 경로를 가리키고 있습니다.

왜 제대로 된 경로를 가리키고 있지 않은가?#

caution

위 환경변수는 VSCode에서 Terminal을 열었을 때 나타납니다. 밖에 그냥 터미널을 열면 안 나타납니다.

환경변수를 수정하면 되겠구나 했는데,

위 환경변수들은 ~/.bashrc 에 설정된 것이 아니라 VSCode에서 Terminal을 열면 그때 추가되는 환경변수였습니다.

환경변수의 경로를 살펴보니 extensions/git/ 이 들어있네요. VSCode Extension과 관련이 있다는 말이지요.

이때 문득 제 머리를 스치는 생각이 있었습니다. 😨

원인#

"git.enabled": false#

VSCode에서 git을 사용할 때 Extension에 내장된 것을 사용합니다.

사실 저는 git 저장소를 사용할 때 SourceTree라는 도구를 사용하기 때문에, vscode에서는 git 확장을 disable 했었습니다.

.vscode/settings.json
{  ...,  "git.enabled": false,}
note

왜냐하면 이렇게 뜨는 것이 눈에 거슬렸거든요. (옆에 숫자가 떠 있고, 파일 이름 색깔이 변하는 등)

image

docusarus 블로그를 yarn deploy 할 때에는 VSCode Extension의 git을 사용하는데,

제가 .vscode/settings.json"git.enabled": false라고 해놓았기 때문에 바르게 동작하지 않았던 것입니다.

caution

VSCode에서 git 기능을 사용하는 것이 있을 때는,

.vscode/settings.json 에서 "git.enabled": false를 하면 안 됩니다.

해결#

"git.enabled": true#

다시 원래대로 해놓습니다.

.vscode/settings.json
{  ...,  "git.enabled": true,}

그럼 이제 yarn deploy도 잘 됩니다.

$ yarn deploy
...
CMD: git commit -m "Deploy website - based on 1032e9050a07e7a6ca19a5a1576523a3af135bd2" (code: 0)To https://github.com/civilizeddev/civilizeddev.github.io.git   e4fc487..55dba80  gh-pages -> gh-pagesCMD: git push --force origin gh-pages (code: 0)Website is live at "https://civilizeddev.github.io/".Done in 43.80s.
Terminal will be reused by tasks, press any key to close it.

git 화면 표시 끄기#

"git.enabled": false를 하지 않고도 거슬리는 화면 표시를 끌 수 있습니다.

.vscode/settings.json
{  ...,  "git.enabled": true,  "git.countBadge": "off",  "git.decorations.enabled": false,}
note

그러면 이렇게 됩니다. (깔끔)

image

글의 내용이 도움이 되었길 바랍니다.

감사합니다.