そのリポジトリがこちら
という感じ。
リポジトリの README は英語っぽい何かで書いたが、せっかくなのでそれと同じことをここ Qiita に日本語っぽい何かで書いておく。
ASCII 文字のファイル並び順調査
Windows と GitHub のファイル名における ASCII 文字の取り扱いを見てみる。
Windows
画像が縦長すぎるので縮小表示している。
クリックすれば別タブで原寸閲覧できるはず。
並び順
- 数字部分は数値として並び替えられる。
- 大文字・小文字は区別されない。
制約
- 頭と尻のスペースは削除される。
- 一部の記号が使えない。
"
*
/
:
<
>
?
\
|
Windows 10 Home 64-bit 22H2 にて確認。
実は他にも色々と制約があるが、ASCII 文字の並び順というテーマからは遠のくのでカットしている。
その辺は公式ドキュメントを見た方がずっと正確だろう。
GitHub
画像は invalid-on-Windows
ブランチのもの。
やはり縦長すぎるので縮小表示している。クリックで原寸閲覧。
並び順
- 数字も含め、全てが ASCII 順に並ぶ。
制約
GitHub の "Create new file" で新規ファイル名を入力する際、
- 頭と尻のスペースは削除される。
- スラッシュ
/
が使えない。 -
/
以外の Windows で使えない記号、つまり"
*
:
<
>
?
\
|
は、こちらでは使える。
しかし、リポジトリを Windows でクローンした場合に深刻なエラーを引き起こす恐れがある。error: invalid path ':a' error: invalid path '\a' error: unable to create file "a: Invalid argument error: unable to create file *a: Invalid argument error: unable to create file <a: Invalid argument error: unable to create file >a: Invalid argument error: unable to create file ?a: Invalid argument error: unable to create file |a: Invalid argument
Google Chrome 111.0 にて、2023 年 4 月 8 日確認。
なお、上記エラーはクローン時に --config core.protectNTFS=true
とか --sparse
とかのオプションで回避できる可能性が無くもない。
ただ、回避といっても「とりあえず他のファイルはチェックアウトできるようになる」程度のものであり、エラーの原因となったファイル自体は依然としてローカルに存在を許されないので、およそ根本解決と言えるものではなかろう。
他の OS
募集中。
聞きかじった限りだと、
- Mac では
/
と:
が使えないらしい。 - Unix では改行
\n
すら使えるらしい。
おまけ
ASCII コード一覧
まぁ、一応。
- 0x00~0x1F、0x7F (DEL)
- 制御文字
- 0x20~0x2F
- スペース、
!
、"
、#
、$
、%
、&
、'
、(
、)
、*
、+
、,
、-
、.
、/
- スペース、
- 0x30~0x3F
- 0~9、
:
、;
、<
、=
、>
、?
- 0~9、
- 0x40~0x4F
-
@
、A~O
-
- 0x50~0x5F
- P~Z、
[
、\
、]
、^
、_
- P~Z、
- 0x60~0x6F
-
`
、a~o
-
- 0x70~0x7E
- p~z、
{
、|
、}
、~
- p~z、
ツイートはこちら
おわり