.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Analizo::Command::metrics_history 3pm" .TH Analizo::Command::metrics_history 3pm "2022-10-15" "perl v5.34.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" analizo\-metrics\-history \- processes a Git repository collection metrics .SH "USAGE" .IX Header "USAGE" .Vb 1 \& analizo metrics\-history [OPTIONS] [] .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Processes a Git repository collection metrics for every single revision. .PP \&\fBanalizo metrics-history\fR will process \fIinput\fR, a Git repository with a working copy of the source code (i.e. not a bare git repository), checkout every relevant commit and run \fBanalizo metrics\fR on it. The metrics for all of the revisions will be accumulated in a file called \fImetrics.csv\fR inside \&\fIinput\fR. If \fIinput\fR is omitted, the current directory (.) s assumed. .PP analizo metrics-history is part of the analizo suite. .SH "RELEVANT COMMITS" .IX Header "RELEVANT COMMITS" \&\fBanalizo metrics-history\fR considers as relevant the commits that changed at least one source code file. Consequently, it skips all the commits where no source code file was changed, such as documentation, translations, build system changes, etc. .PP Currently we support C, \*(C+, Java and C# projects, and therefore files considered source code are the ones terminated in \fI.c\fR, \fI.h\fR, \fI.cpp\fR, \fI.cxx\fR, \fI.cc\fR, \&\fI.hh\fR, \fI.hpp\fR, \fI.java\fR and \fI.cs\fR. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\-\-parallel N, \-p N" 4 .IX Item "--parallel N, -p N" Activates support for parallel processing, using \fIN\fR concurrent worker processes. Usually you will want N to be less than or equal to the number of CPUs in your machine. .Sp Note that analizo metrics extraction is a CPU-intensive process, so setting N as the exactly number of CPUs you have may bring your machine to an unusable state. .IP "\-\-language \s-1LANGUAGE,\s0 \-\-exclude \s-1DIRECTORY\s0" 4 .IX Item "--language LANGUAGE, --exclude DIRECTORY" Use programming language and directory exclusion filters. See \&\fB\fBanalizo\-metrics\fB\|(1)\fR for a description of these options. .IP "\-\-output , \-o " 4 .IX Item "--output , -o " Make the output be written to \fIfile\fR. The default value and valid values depend on the output format, see \*(L"Output formats\*(R" below. .IP "\-\-format \s-1FORMAT,\s0 \-f \s-1FORMAT\s0" 4 .IX Item "--format FORMAT, -f FORMAT" Specifies with output driver, and consequently the output format, to use. See \&\*(L"Output Formats\*(R" below for a description of the available output drivers. .IP "\-\-list, \-l" 4 .IX Item "--list, -l" Instead of actually processing the history, just print out the ids of the commits that would be processed. .IP "\-\-progressbar, \-b" 4 .IX Item "--progressbar, -b" Displays a progress bar during the execution, so that you know approximately how long analizo is going to take to finish. .SH "Output formats" .IX Header "Output formats" Using the \fI\-\-format\fR option, you can use the following output drivers: .SS "csv" .IX Subsection "csv" This is the default output driver. By default, the output will be written to the standard output. If can direct the output to a file using the \fI\-\-output\fR option. .SS "db" .IX Subsection "db" Stores the extracted data in a relational database. .PP When you use this driver, you can specify where exactly to store the data using the \fI\-\-output\fR option. If you do not specify an explicit target, analizo will write to a SQLite database in a file called \fIoutput.sqlite3\fR in the current directory. If you pass a filename, and analizo will store the data in a SQLite database that will be created on that file. You can direct the output to any other database by using \fI\-\-output \s-1DSN\s0\fR, where \fI\s-1DSN\s0\fR is a \s-1DBI\s0 Data Source Name. .PP You can check \fB\s-1DBI\s0\fR(3pm) for details. Note that if you a database other than SQLite, you must make sure that you have the corresponding \s-1DBI\s0 driver installed. .PP Examples: .PP \&\fB$ analizo metrics-history \-f db \-o history.db\fR .PP Writes the output to a SQLite database called \fIhistory.db\fR. .PP \&\fB$ analizo metrics-history \-f db \-o 'dbi:Pg:dbname=pgdb'\fR .PP Writes the data to a PostgreSQL database called \fIpgdb\fR. This requires the \&\fIDBI::Pg\fR Perl module. .PP analizo was not tested with MySQL yet. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fB\fBanalizo\-metrics\fB\|(1)\fR .SH "COPYRIGHT AND AUTHORS" .IX Header "COPYRIGHT AND AUTHORS" See \fB\fBanalizo\fB\|(1)\fR.