はじめに
CLOCというツールでステップ数を集計しようとしたら、日本語のファイル名でエラーになりました。
それを解決した話。
結論
まず、結論から。
環境はMac。
エラー内容はこんな感じ。
$ cloc --git --diff release feature
fatal: pathspec 'myrepository/\343\202\212\343\203\274\343\201\251\343\201\277\343\203\274.md' did not match any files
Failed to create tarfile of files from git. at /usr/local/Cellar/cloc/1.84/libexec/bin/cloc line 4713.
圧縮ファイルが作れないって言ってる。
文字化け感満載。
下記コマンドをローカルリポジトリで一度流せば解決。
$ git config --local core.quotepath false
$ brew install gnu-tar
$ export PATH=/usr/local/opt/gnu-tar/libexec/gnubin:$PATH
再起動したら再びエラーになると思うので、環境変数は.bash_profile
等に追記しても良いと思います。
CLOCについて
オープンソースのステップ数計測ツールです。
単純な計測以外にも、比較やgitにも対応しています。
この情報が必要な人は既にCLOC使い始めてると思うので・・・公式サイトは以下です。
http://cloc.sourceforge.net/
公式サイトの更新が滞ってるようなので、コマンドのヘルプかソースみた方が良さげです。
原因
その1
ソース中に git ls-tree --name-only -r branch_name
でファイルリスト取得している部分があるのですが、ここで文字化けしてました。
解決策はこちらを参考にさせて頂きました。
https://dev.classmethod.jp/tool/git/git-avoid-illegal-charactor-tips/
ありがとうございます。
その2
解決したと思いきや、こんなメッセージが表示されるように・・・。
Usage:
List: tar -tf <archive-filename>
Extract: tar -xf <archive-filename>
Create: tar -cf <archive-filename> [filenames...]
Help: tar --help
tarのオプションが間違ってる雰囲気。
-v
オプションで詳細みてみると-A
オプションを指定しているようだが、tar --help
に-A
オプションの記載はない。
下記記事を参考にさせて頂いた所、解決しました。
https://hacknote.jp/archives/8951/
ありがとうございました。
感想
情報があまり見当たらなかったので、動かしながらデバッグしました。
perlはじめてでしたが、言語はなんであれソース動かすの楽しい。