Your company here — click to reach over 10,000 unique daily visitors

plotchangelog - Man Page

graph Debian changelogs


plotchangelog [options] changelog ...


plotchangelog is a tool to aid in visualizing a Debian changelog. The changelogs are graphed with gnuplot(1) , with the X axis of the graph denoting time of release and the Y axis denoting the Debian version number of the package. Each individual release of the package is represented by a point, and the points are color coded to indicate who released that version of the package. The upstream version number of the package can also be labeled on the graph.

Alternatively, the Y axis can be configured to display the size of the changelog entry for each new version. Or it can be configured to display approximately how many bugs were fixed for each new version.

Note that if the package is a Debian-specific package, the entire package version will be used for the Y axis. This does not always work perfectly.

Reading the Graph

The general outline of a package's graph is typically a series of peaks, starting at 1, going up to n, and then returning abruptly to 1. The higher the peaks, the more releases the maintainer made between new upstream versions of the package. If a package is Debian-only, it's graph will just grow upwards without ever falling (although a bug in this program may cause it to fall sometimes, if the version number goes from say, 0.9 to say, 0.10 - this is interpreted wrong...)

If the graph dips below 1, someone made a NMU of the package and upgraded it to a new upstream version, thus setting the Debian version to 0. NMU's in general appear as fractional points like 1.1, 2.1, etc. A NMU can also be easily detected by looking at the points that represent which maintainer uploaded the package -- a solitary point of a different type than the points before and after it is typically a NMU.

It's also easy to tell by looking at the points when a package changes maintainers.


-l, --linecount

Instead of using the Debian version number as the Y axis, use the number of lines in the changelog entry for each version.  Cannot be used together with --bugcount.

-b, --bugcount

Instead of using the Debian version number as the Y axis, use the number of bugs that were closed by each changelog entry. Note that this number is obtained by searching for "#dddd" in the changelog, and so it may be inaccurate.  Cannot be used together with --linecount.

-c, --cumulative

When used together with either --bugcount or --linecount, graphs the cumulative count rather than the count in each individual changelog entry.

-v, --no-version

Do not show upstream version labels. Useful if the graph gets too crowded.

-m, --no-maint

Do not differentiate between different maintainers of the package.

-s file, --save=file

Save the graph to file in PostScript format instead of immediately displaying it.

-u, --urgency

Use larger points when displaying higher-urgency package uploads.


Output the gnuplot script that is fed into gnuplot (for debugging purposes).

-gcommands, --gnuplot=commands

This allows you to insert gnuplot(1) commands into the gnuplot script that is used to generate the graph. The commands are placed after all initialization but before the final plot command. This can be used to override the default look provided by this program in arbitrary ways. You can also use things like "set terminal png color" to change the output file type, which is useful in conjunction with the -s option.


Show a usage summary.


Display version, author and copyright information.

--noconf, --no-conf

Do not read any configuration files (see below).

changelog ...

The changelog files to graph. If multiple files are specified they will all be displayed on the same graph. The files may be compressed with gzip. Any text in them that is not in Debian changelog format will be ignored.

Configuration Variables

The two configuration files /etc/devscripts.conf and ~/.devscripts are sourced by a shell in that order to set configuration variables.  The --no-conf option can be used to prevent reading these files.  Environment variable settings are ignored when these configuration files are read.  The currently recognised variables are:


This is a space-separated list of options to always use, for example -l -b.  Do not include -g or --gnuplot among this list as it may be ignored; see the next variable instead.


These are gnuplot commands which will be prepended to any such commands given on the command line.

See Also



Joey Hess <joey@kitenet.net>

Referenced By


Debian Utilities