朗報、GitHub無料ユーザーも無制限にプライベートリポジトリを使えるようになる | TechCrunch Japan
https://jp.techcrunch.com/2019/01/08/2019-01-07-github-free-users-now-get-unlimited-private-repositories/
これは朗報。ていうかやっとか。競合サービスである bitbucket では既に解放されてたので、GitHub も早晩追随せざるをえないのではないかと言われつつデファクトスタンダードの座に胡坐をかいて何年もそのままだったのが、ようやく対応。記事中にもあるがMSによる買収の成果か。仕事でもケチなプロジェクトは bitbucket だったりしたのがようやくなくなるのか。共同編集者3人てのが、bitbucket では5人まで行けた気がするが、どうせケチな小規模案件だしそれほど影響ないかな。
最近、ライターも原稿をバージョン管理しよう、編集者とのやりとりも GitHub 上でできるし、みたいな話もちらほら聞くようになって、GitHub のUIじゃまだちょっと開発者以外にはハードルが高いんではないか、的な議論もあったが、私はそれ以前に自然言語のテキストをバージョン管理するんなら差分を取るのに行単位じゃ不十分だろう、という点が気になっていた。しかしよく考えたらそれは git ではなく diff の問題であり、しかも git diff には --word-diff というオプションがあって単語単位の差分も取れることをつい最近になって知った。git diff って diff コマンドを利用してるだけじゃねえの? と思ってたが diff には相当するオプションが見当たらず、そもそも diff サブコマンドのオプションにまた diff という文字列が含まれているのは全くエレガントでない。どういう実装になってるんだろ。(面倒でまだ調べてない)
追記。もう一つ気になってたのは語単位というのは改行の代わりにホワイトスペース毎に行とみなしてるだけなんじゃね? ということで、だとすると日本語では使えない。さすがにこれは確認するかと思ってやってみたら案の定。
$ git diff --word-diff hoge.txt
diff --git a/hoge.txt b/hoge.txt
index 35be3df..780092f 100644
--- a/hoge.txt
+++ b/hoge.txt
@@ -1,3 +1,3 @@
[-おもしろきこともなき世をおもしろく-]{+おもしろきこともなき世におもしろく+}
考えてみれば当然だった。全文検索におけるインデックス問題と同じで、日本語のハードルは高い。 --word-diff-regex というオプションで正規表現も使えるようだが多分それも解決にはなるまい。日本語テキストバージョン管理の明日はどっちだ。
さらに追記。
Gitで日本語長文のdiffをとる方法 - Qiita
git diff --word-diff-regex=$'[^\x80-\xbf][\x80-\xbf]*' --word-diff=color 8ae5f..d0394
できてるじゃん!
念のためさっきと同じ環境で実行してみたらちゃんとうまくいく。
$ git diff --word-diff-regex=$'[^\x80-\xbf][\x80-\xbf]*' hoge.txt
diff --git a/hoge.txt b/hoge.txt
index 35be3df..780092f 100644
--- a/hoge.txt
+++ b/hoge.txt
@@ -1,3 +1,3 @@
おもしろきこともなき世[-を-]{+に+}おもしろく
--word-diff-regex って「match する単位を語と見なす」ってことなのか。リンク先によると .
は文字でなくバイト単位になってしまうらしく巧くいかないとのことだが、確かに手元でも再現する。昔の Shift-JIS とか EUC-JP とかならともかく Unicode環境でそんなことある? 実際動かないもんは仕方ないが、むしろ上の書き方のほうが charset に依存しててよろしくないように思える。原稿の長さをバイト単位で指定するような業界では使えないかもしれない。
あとそもそも ---word-diff-regex のようなオプションを GitHub 上の表示に適用する設定はないとのこと。そのことにも気づいてはいたけど(笑)、個人的にはまだまだ git はコマンドラインから使ってるっつーか、一人で作業してる分にはわざわざ GitHub で差分を見ることはないから問題ないのだった。
森博嗣がデビュー当時「メールでやりとりできない編集者とは仕事しない」と宣言して電話連絡を拒否したという話があるが、それくらい売れっ子で影響力のある作家が登場して強制しない限りなかなか普及はしないだろうなあ。今よりずっと使いやすくなったとしても。
余談だけど「ビットバケツ」ってなんとなくジャパン発のスラングだと思ってたのだが "bit bucket" がまさにそれなんだよね。バケツに捨てるみたいなニュアンスが英語圏でも共通なのか? と不思議だったのだが検索したら、
もともとはパンチカードにキーパンチで穴を空けた際に出るくずを入れる容器を指して使った言葉である(正式名称は "chad box"、"chip box")。
そんな古い由緒のある言葉だったとは(笑。
コメントする