Analiz...history(3pm)

πŸ“¦
version 1.25.5 Β· 4 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– analizo-metrics-history β€” the manual, bestie edition πŸ’–

okay so you opened the man page for analizo-metrics-history(3pm) and honestly? iconic choice. this is one of those Perl-contributed docs (User Contributed Perl Documentation, if u must know), and it's about to be your new hyperfixation. let's get into it 🫢


✨ NAME ✨

analizo-metrics-history β€” processes a Git repository collection metrics. yes bestie, that's the whole vibe: it takes your git repo and gets all the metrics out of it. πŸŽ€


🌸 USAGE 🌸

analizo metrics-history [OPTIONS] [<input>]

that's it. that's the whole summoning ritual. ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

so what's actually happening here? analizo metrics-history processes a Git repository, collecting metrics for every single revision. every one. no skipping, no shortcuts, full dedication. πŸ’…

it will process input, which is a Git repository with a working copy of the source code β€” and listen, that part matters: it is not a bare git repository, okay? it needs the actual working copy. then it checks out every relevant commit and runs analizo metrics on it. the metrics for all of the revisions get accumulated in a file called metrics.csv inside input. and if you just... don't give it an input at all? it assumes the current directory (.) is the vibe. easy. 😌

analizo metrics-history is part of the analizo suite. one of the girls in the group chat, iykyk. πŸ‘‘


πŸ”₯ RELEVANT COMMITS πŸ”₯

not every commit gets the main character treatment. analizo metrics-history considers relevant the commits that changed at least one source code file. so consequently, it skips all the commits where no source code file was changed β€” like documentation commits, translations, build system changes, etc. they're just not the moment, and that's fine. πŸ™ˆ

currently we support C, C++, Java and C# projects, so the files considered source code are the ones terminated in .c, .h, .cpp, .cxx, .cc, .hh, .hpp, .java and .cs. that's the whole source-code guest list, no plus-ones. ✨


πŸ’œ OPTIONS πŸ’œ

  • --parallel N, -p N β€” activates support for parallel processing, using N concurrent worker processes. usually you'll want N to be less than or equal to the number of CPUs in your machine. but babes, hear me: analizo metrics extraction is a CPU-intensive process, so setting N to be exactly the number of CPUs you have may bring your machine to an unusable state. like, unusable unusable. don't do that to your laptop. 😭
  • --language LANGUAGE, --exclude DIRECTORY β€” use the programming language and directory exclusion filters. see analizo-metrics(1) for a description of these options. πŸ’–
  • --output <file>, -o <file> β€” makes the output be written to file. the default value and the valid values both depend on the output format, so peep "Output formats" below. πŸŽ€
  • --format FORMAT, -f FORMAT β€” specifies which output driver to use, and consequently the output format. see "Output Formats" below for a description of the available output drivers. it's giving choose-your-own-adventure. 🌈
  • --list, -l β€” instead of actually processing the history, it just prints out the ids of the commits that would be processed. a little sneak peek, no commitment. πŸ‘€
  • --progressbar, -b β€” displays a progress bar during the execution, so that you know approximately how long analizo is going to take to finish. emotional support progress bar fr fr. 🫢

⭐ Output formats ⭐

using the --format option, you can use the following output drivers:

πŸ“ csv

this is the default output driver. by default, the output will be written to the standard output. you can direct the output to a file using the --output option. simple, clean, demure. πŸ’…

🌸 db

stores the extracted data in a relational database. now this is where it gets spicy:

when you use this driver, you can specify where exactly to store the data using the --output option. if you do not specify an explicit target, analizo will write to a SQLite database in a file called output.sqlite3 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 --output DSN, where DSN is a DBI Data Source Name.

you can check DBI(3pm) for details. and ngl this part is important: note that if you use a database other than SQLite, you must make sure that you have the corresponding DBI driver installed. no driver, no data, bestie. πŸ’€

Examples:

$ analizo metrics-history -f db -o history.db

writes the output to a SQLite database called history.db. iconic.

$ analizo metrics-history -f db -o 'dbi:Pg:dbname=pgdb'

writes the data to a PostgreSQL database called pgdb. this requires the DBI::Pg Perl module. πŸ‘‘

analizo was not tested with MySQL yet. so like... be aware. no promises. πŸ™ˆ

🌈 SEE ALSO 🌈


see analizo(1). yep, that's the whole section, go read the other one bestie. 🫢


and that's the tea, periodt. ✨ this page came to you courtesy of perl v5.40.1, dated 2025-12-13, and it lives in the Analiz...history(3pm) section of your friendly neighborhood manual. now go run some metrics, main character. πŸ’…πŸŽ€

πŸ“¦ where this page comes from