これは語数に関するものですが、リポジトリ内のすべてのgitコミットにまたがってプログラムを実行していると思います。私は執筆プロジェクトをやっていて、それぞれのコミット後にプログラムで単語数を生成したいと思ったのは遅かったです。 texファイルのみ。しかし、その後、プロジェクトの人生のためのカウントを取得する方法は?私はそれを行う簡単な方法を見つけることができなかったので、それは私が求めているものです。リポジトリの履歴で各gitコミットの単語数を見つける方法は?
:私のソリューションは、日付や単語がカウントプロジェクトの生活の中でコミット各個人のブランチをチェックアウトし、取得するために私の小さなシェル/ sedの/ Perlスクリプトを実行しているの手動プロセスを自動化することでした
#!/usr/bin/env perl
use strict;
use warnings;
use 5.014;
use App::gh::Git;
use IPC::System::Simple qw(capture);
my $repo = Git->repository(Directory => '/home/amiri/MyProject/.git');
my @commits
= reverse $repo->command('rev-list', '--all', '--date', 'short');
my $command
= qq{find /home/amiri/MyProject -name "*.tex" | xargs wc -w | grep total | sed 's/[a-zA-Z[:space:]]//g'};
my $command2
= q{git log | grep "Date:" | sed -n 1p | perl -pi -e "s/^Date:\s+//g" | perl -pi -e "s/2011 -\d+$/UTC 2011/g"};
for my $commit (@commits) {
$repo->command("checkout", "-b", "$commit", "$commit");
my $count = capture($command);
my $date = capture($command2);
chomp $date;
say "$date,$count";
$repo->command("checkout", "master");
$repo->command('branch', "-d", $commit);
}
これはうまくいきますが、もっと良い方法があると感じています。少し不気味なようです。
あなたはそれをかなり簡単に行うために[この回答](http://stackoverflow.com/a/9141855/635608)を適応させることができます。 (その質問に対する私の答えではなく、それはあなたのアプローチに近く、それほど良いものではありません) – Mat