LoginSignup
3
1

More than 3 years have passed since last update.

CLOCとGitで日本語ファイル名のファイルを比較する

Last updated at Posted at 2019-11-12

はじめに

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はじめてでしたが、言語はなんであれソース動かすの楽しい。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1