#
문제#
askpass.sh: No such file or directorydocusaurus 블로그를 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": falseVSCode에서 git을 사용할 때 Extension에 내장된 것을 사용합니다.
사실 저는 git 저장소를 사용할 때 SourceTree라는 도구를 사용하기 때문에, vscode에서는 git 확장을 disable 했었습니다.
{ ..., "git.enabled": false,}
note
왜냐하면 이렇게 뜨는 것이 눈에 거슬렸거든요. (옆에 숫자가 떠 있고, 파일 이름 색깔이 변하는 등)
docusarus 블로그를 yarn deploy
할 때에는 VSCode Extension의 git을 사용하는데,
제가 .vscode/settings.json
에 "git.enabled": false
라고 해놓았기 때문에 바르게 동작하지 않았던 것입니다.
caution
VSCode에서 git 기능을 사용하는 것이 있을 때는,
.vscode/settings.json
에서 "git.enabled": false
를 하면 안 됩니다.
#
해결#
"git.enabled": true다시 원래대로 해놓습니다.
{ ..., "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
를 하지 않고도 거슬리는 화면 표시를 끌 수 있습니다.
{ ..., "git.enabled": true, "git.countBadge": "off", "git.decorations.enabled": false,}
note
그러면 이렇게 됩니다. (깔끔)
글의 내용이 도움이 되었길 바랍니다.
감사합니다.