初投稿となる今回は、技術よりではなく開発付帯作業で使えそうなツールをご紹介しようと思います。
はじめに
みなさんが関わっているプロジェクトが、割とガッチリしたところだと「生産性の分析」のために開発ステップ数を集計されているのではないでしょうか。例えば、母体のソースコードのステップ数、変更後の追加・修正・削除ステップ数などです。
狛ではソースコードをGitで管理しており、Git自体にもブランチ間の差分をとるdiffコマンドが存在します。ですが、このdiffコマンドがイケていない(笑)
そこで、幾つかネットで探して、最終的に「cloc」というオープンソースのツールを導入してみることにしました。
これが割と快適だったので、導入方法や出力イメージなどをご紹介します。
1.clocについて
「cloc(Count Lines of Code)」は、指定ディレクトリ又はファイルのステップ数を解析してくれる便利ツールです。Git diffコマンドとの大きな違いは、ブランチ間の差分ステップ数を「追加」「変更」「削除」で識別し、カウントしてくれる点です。現在、オープンソースとしてGitHubに公開されており無償で利用が可能です。
GitHub : cloc
※clocは、他のソースからコピーされた部分を除きGNU General Public License v2の下でライセンスされています。
2.導入方法
「cloc」は、MacBookやWindows、Linuxなど幅広いOSで利用が可能です。今回は、私が開発で使っているのがMacBookなので、そちらへの導入方法をご紹介します。
インストール環境:MacOS Catalina バージョン 10.15.2
①HomeBrewをインストール
今回は、HomeBrewを使用してインストールするため、HomeBrew自体をインストールします。 MacOSへのインストール要件はコチラを参照ください。最初に対象のMacにHomeBrewがインストールされているかどうか確認します。
% brew --version
zsh: command not found: brew
インストールされていない場合は、ターミナルから下記のコマンドを実行し、インストールしてください。 ※インストールコマンドはHomeBrewの公式ページより取得
% /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
実行完了後、正常にインストールされた事を確認します。
% brew --version
Homebrew 2.2.5
②clocをインストール
cloc本体のインストールを行います。ターミナルを立ち上げ、以下のコマンドを実行してください。
% brew install cloc
実行完了後、正常にインストールされた事を確認します。
% cloc --version
1.84
導入作業はこれで完了です🎉
3.利用方法
主目的はブランチ間の差分ステップ数取得ですが、今回は2つ利用方法をご紹介します。パターン① 現行のブランチに対するステップ数解析
①ターミナルを立ち上げ、該当のGitローカルリポジトリに対しclocコマンドを実行します% cloc /Users/yuckieeee/Gitローカルリポジトリ
<実行結果(例)>
3000 text files. 3000 unique files. 500 files ignored. github.com/AlDanial/cloc v 1.84 T=5.70 s (355.9 files/s, 33435.9 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- Java 350 4000 350 25000 XML 250 2500 300 12000 ・ ・ ・ ------------------------------------------------------------------------------- SUM: 1500 10000 2000 60000 -------------------------------------------------------------------------------
パターン② ブランチ間のステップ数の差分解析
①比較対象のブランチ2つをGitからダウンロードしてくださいGitLabだとリポジトリのトップ画面右上にダウンロードアイコンがあります。
②ターミナルを立ち上げ、ダウンロード先のディレクトリに移動します
③下記のclocコマンドを実行してください
zipやtarのままでもステップ数の解析が可能です。
% cloc --diff master.tar branch.tar
※圧縮ファイルの場合は、拡張子まで指定してください<実行結果(例)>
300 text files. 300 text files. 0 files ignored. github.com/AlDanial/cloc v 1.84 T=1.55 s (337.8 files/s, 22344.2 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- Kotlin same 200 1800 400 12000 modified 90 0 0 180 added 3 300 122 1300 removed 0 0 0 100 XML same 100 800 50 10000 ・ ・ ・ ------------------------------------------------------------------------------- SUM: same 100 200 100 10000 modified 20 0 3 100 added 20 200 150 1800 removed 30 10 0 100 -------------------------------------------------------------------------------
これでブランチ間の追加・修正・削除ステップ数が確認できました。 clocは、改行、コメントやコードごとに集計されるので、非常に分かり易いです。
欲を言うなら、パータン②のダウンロード作業が無くなってくれれば最高です☺️←
4.コマンドオプション
最後に、重宝しそうなオプションをいくつか紹介して終わろうと思います。・比較対象を指定
clocはディレクトリ、ファイル、Git hashによる比較対象の指定が可能です。Git hashでのコマンド指定を例示します。
// ローカルリポジトリに遷移
% cd /Users/yuckieeee/ローカルリポジトリ/
// 対象コミットのハッシュを確認する
% git log
// 上記で確認したハッシュを指定する
% cloc --diff <コミットハッシュ①> <コミットハッシュ②>
・ファイルごとに解析結果を表示
何も指定しない場合は、プログラム言語ごとに集計されます。ファイル単位に確認したい場合は、以下のように--by-fileオプションを追加すればOKです。
% cloc --diff master.tar branch.tar --by-file
・CSVファイル出力
CSVファイル出力したい場合は、以下のようにcsvタイプ指定と出力先指定をすればOKです。% cloc --diff master.tar branch.tar --csv > result.csv
まとめ
開発の付帯作業の必要性は分かるものの、出来るだけ時間を掛けたくなですよね。。これからも便利そうなツールや機能があれば紹介していきたいと思います。
Git
0 件のコメント:
コメントを投稿