GitHub Desktopのバグその2
GitHub Desktopのバグについて書いたばかりだが、GitHubデベロッパーサポートのスティーブから返信メールがあったので、ちょっと書いてみようと思う。別にバグが回避できたとか解決できたとかではないので、あまり期待しないように。
テストユーザを作れ、だと?
GitHubデベロッパーサポートのスティーブのメールを読んで「それで解決しないから質問しているのだ」とメールを返信しておいたら、2時間後ぐらいにその返信が来ていた。
Hi,
I'm sorry to hear that didn't get things working. This issue is a system-specific problem -- it's caused by something on your system affecting GitHub Desktop's built-in Git.
My guess is that it actually may be caused by the characters in your Windows username. This has been a known cause of this issue in the past. Are you able to create a new test user to see if you are able to reproduce this issue there?
Best,
Steve
彼が言うには(彼の推測では)、Windowsユーザ名に問題があるらしい。実際GitHubでこの問題を話し合っている人達のメッセージ(英語)を読むと、「ユーザ名に&が入っていたからダメだった」的な発言がある。恐らくそれをもって「既知の問題」と彼は言っているようだ。なので、「新しくテストユーザを作ってこの問題が再現するかどうか確認できるか?」と彼は言っている。
なるほど私のWindows10でのユーザ名は本名で「姓 名」(姓と名の間に全角スペース1つ)となっている。仮に日本語をデコードしても「&」が入ることはないが・・・。あっ!?Σ(°Д°)💡ピコーン
私の推測
日本語のユーザ名をエンコードすると(例えば「テストユーザ」をエンコードすると)「%E3%83%86%E3%82%B9%E3%83%88%E3%83%A6%E3%83%BC%E3%82%B6」となる。この「%nn」の「%」がダメなんジャマイカ?
問題となっている C:\Users\【ユーザ名】\AppData\Local\GitHubDesktop\app-2.1.3\resources\app\static\ask-pass-trampoline.bat の内容は次の通りだ。
@echo off
setlocal
set ELECTRON_RUN_AS_NODE=1
set ELECTRON_NO_ATTACH_CONSOLE=1
"%DESKTOP_PATH%" "%DESKTOP_ASKPASS_SCRIPT%" %*
endlocal
恐らく「%DESKTOP_ASKPASS_SCRIPT%」の環境変数を展開する際に、日本語のユーザ名だとエンコードされて「%」が入ってしまうため、正しくASKPASSスクリプト(ask-pass.js?)のパスが展開できずにエラーになるんでは?(我ながら安易な推測だが・・・)
だとすると、2バイト系(文字コードによっては1文字2バイト以上)の言語を使っている国のユーザは、自分自身のWindows10ユーザ名を母国語にしている場合は「GitHub Desktopが使えない」ということになる。まさかね?
ァ '`,、'`,、('∀`) '`,、'`,、
・・・ホントか?ということで、検証してみた。
半角アルファベットのみのユーザを追加して検証
結論から言えば、何も問題なくPush出来た!Σ(´Д`;)
まさか?と思ったらビンゴ!だったのだが、コレってどうなん??私の仮説が乱暴過ぎるような気がしないでもないが、論より証拠なのでコレには困った。
つーか、普通にWindows10のユーザ名が日本語の日本人は一杯いるだろうし、昨日今日公開されたソフトじゃなし、GitHub Desktopを使っている日本人だって沢山いるだろう。今まで問題にならなかったのか?そんなワケないよね??
しかし、サインアウトしてメインである日本語ユーザ名でログインすると、やはり一切Pushが出来ない。これは考えてもワカランので、次のようにスティーブに英語で質問を返信しておいた。
ハイ、スティーブ。
試しにアルファベットのみのWindowsユーザを作成し、テストしてみた。
結論から言えば、問題なくGitHubのリポジトリにPushすることが出来た。
しかし、私は日本人なので、Windowsユーザ名は日本語である。
仮にWindowsユーザ名が日本語の場合にエラーが出てPush出来ないのであれば、このソフトウェアは日本人や1文字あたり2バイト以上を使う文字コードの言語の人達は使えないことを意味するのではないか?
この問題は日本人や中国人、韓国人等から指摘されていないのだろうか?
・・・さて、スティーブは何と返信してくるかな?