GitHub DesktopがWindows10で使えない!?日本語ユーザ名の罠

GitHubのアカウントは持っていたものの、アカウントを作ってから2年は放置していた。今さらジロー的にGitHubを使ってみようか?と思ったのは、GitHub Pagesを無料かつ無広告で利用し、どこからでもアクセス可能な自分だけのメモ帳としてTiddlyWikiティドリーウィキ)を立てたい、と思い立ったからに他ならない。
そもそもソフトウェアのバージョン管理システムとしてのGitは分かりにくいし、使いにくい。でもまぁ「GitHubはまたちょっと違うしな」と思い、PukiWikiのライブラリやプラグインを独自で開発してダウンロードページで公開しているので、手始めに「GitHubでプログラムを公開するところからやってみよう」と軽い気持ちでやり始めたのだが、コレが間違いのモトだった。

GUIで手軽に出来ないか?

私はUNIX偏愛主義者ではないし、コマンドライン至上主義者でもないので、Windows10でGUIツールを使ってGitHubが使いたい。そこで、GitHubが公式に配布しているGitHub Desktopをダウンロードして使ってみた。フルに英語なツールなのが気に入らないが、GUIでGitHubが使えるし、まぁ、ユーザインタフェイスも悪くない。
GitGitHubに限らないが、一般的にバージョン管理システムはプログラム以外にドキュメントの管理にも向いている。なので一般企業での社内文書の管理はモチロン、文筆家や翻訳家が共著者や編集者とやり取りしながら本の執筆が可能だし、イラスト(画像)等も含め全て管理できる。
GitHub Desktop自体はGitHubGitコマンドでやり取りを行うGUIアプリケーションであって、実際のプログラムの開発は(文書やイラストの作成等も含め)自分の好きなツールが使える。そういった意味で自由度の高いゆるーい結合なので、お手軽にGitHubを使うツールとしては、使いやすいと言えるだろう。

実際に仕事でGitHubを使うとなれば、無料プランだと否応なしにリポジトリが「全公開」になってしまうので、有料プラン(月額7米ドル)にしてプライベートなリポジトリを作成する必要があるGitHubのビジネスモデルはこの有料プランにあると言えるが、それにしても安いし、オープンソースソフト(OSS)を公開する個人や団体は「全公開」で良いので、実質無料で恩恵に与れると言える。

GitHubのリポジトリにPush出来ない?

試しにGitHubPukiWikiのライブラリをアップすべく公開のリポジトリを作成し、GitHub Desktop Ver2.13(最新)をインストールして開発したライブラリをローカルリポジトリにコピーしてCommitし、さて、GitHubのリポジトリにPushしようとした。

ところが画像の通りエラーが出て、どうやってもPush出来ない。
画面を見てもユーザ名(漢字)以下が文字化けしているのが引っかかるが、次のエラーメッセージが出力されている。

error: unable to read askpass response from ‘C:\Users\【ユーザ名】\AppData\Local\GitHubDesktop\app-2.1.3\resources\app\static\ask-pass-trampoline.bat’
fatal: could not read Username for ‘https://github.com’: terminal prompts disabled

ググりまくると、当のGitHubにしかその情報がないが(しかも英語)、どれも解決しない内容ばかりで途方に暮れた。どうやらWindowsインストーラ形式のMSI版でインストールすると、レジストリに

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

が作成され、この最後の部分である\AutoRunのキーを削除すれば問題が回避できるようなことが書いてある。
私の場合はMSI版ではなく、Windows10(64Bit)ネイティブアプリ版からインストールしているので、レジストリエディタを見ても\AutoRunのキーは存在しない。
つーか、アンインストールしてMIS版をダウンロードしてインストールしようとしても、インストールが出来ないじゃん!?ヽ(`Д´#)ノ ムキー!!
オマイ等コレちゃんとテストしたの?レベルだが、欧米人が作るOSSレベルってこんなモンだよなぁ、と呆れる他はない。
私なりに色々と調べてみたが、どうにも解決出来ないし、ネットに情報もないので、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が出来ない。これは考えてもワカランので、GitHubデベロッパーサポートのスティーブにテストした結果を英語で伝えると共に、質問を返信しておいた。
曰く、「このソフトは日本人や1文字あたり2バイト以上を使う文字コードの言語圏の人間は使えないのか?この問題は日本人や支那人、韓国人等から指摘されてないのか?」と。

残念なお知らせ

スティーブの返信メールを読む限り、「Windows10で日本語ユーザ名を使っているプログラマはGitHub Desktopが使えない」ことが判明した。

Hi,
Thanks for testing that out and confirming that a new user successfully works. Unfortunately we do not have a workaround for this issue at this time, but this is something that we are aware of and would like to implement a fix for in the future. I am sorry that I do not have better news. I have added this issue to an internal issue tracking this bug.
If you have any further questions, please let me know.
Best,
Steve

要点を整理すると、

  • 現時点では問題の回避策はない
  • 将来修正を実装したい
  • このバグを追跡する内部問題として追加した

である。
「さらに質問があればお知らせ下さい」だと?ワシの労力とかかった時間を返せ!ヽ(`Д´)ノ
Windows10日本語ユーザ名の場合Push出来ないなどという、欧米人以外が使えない仕様のソフトなんか公開するんじゃねーよ!って、文句を言っても仕方ないか。(´・ω・`)

おわりに

マックに関しては、昔に68系マックを買ってインターネットデビューしたものだが、当時のアッポー社には幻滅したし、以来、一切アッポー製品は買うまいと思っている。なので、macOS版のGitHub Desktopに関しては検証環境もないし、それ以前に興味を失った。
そもそも初期の目的はGitHub PagesTiddlyWikiを立てることであって、GitHubでプログラムを公開するのは副次的なモノであった。それが(普通に使えると思ったのに)GitHub Desktop大バグ野郎で使えないため、この一週間ほどはGitHubでプログラムを公開するのが所期の目的と化してしまった感が否めない。
結果としてGitHub Desktopが自分の環境で使えないと判明した以上、所期の目的を達するにはSourceTreeを導入するしかないか、と結論するに至った。これだけネットが普及し、文字コード問題はある程度解決済みであるかのように思っていたが、実はそうでもなかったと分かっただけ、勉強になったと思う(ようにする)。

 

 


Warning: strpos() expects parameter 1 to be string, array given in /home/eware/dajya-ranger.com/public_html/wp-includes/compat.php on line 498

Warning: preg_match_all() expects parameter 2 to be string, array given in /home/eware/dajya-ranger.com/public_html/wp-includes/shortcodes.php on line 155
Array

この記事が気に入ったら
いいね ! をお願いします


ITで何かお手伝い出来ることはありませんか?

CTA-IMAGE

本サイトでは、外部サービスと連携して「ITの困った」を解決します!

ソフトウェアカテゴリの最新記事