Name

portvcs–FreeBSD ports commits history viewer that doesn’t require neither local ports tree nor CVS checkouts.

Synopsis

portvcs [options] category/port

Description

The portvcs utility connects to a remote VCS (Version Control System) server and grabs the history of commits.

At the time of writing FreeBSD uses CVS (jeez) for its ports collection, so portvcs (with default configuration) connects to well-known French CVS server via TCP port 2401 and reads the logs of a particular port. By default the utility constrains the history to 1 year but that’s easy changeable via -d CL (command line) option.

portvcs isn’t restricted to FreeBSD ports–it can read logs from (probably) any CVS server but in that case its usefulness is very doubtful.

The options are as follows:

–ports-tree-local DIR

Set this if you have the ports tree directory in an unusual place.

–config-dirs

List all possible locations for the configuration file. The first found wins.

–config NAME

The name of the configuration file. If it contains / in it, the list from --config-dirs is ignored.

-d EXP

Passes the EXP to VCS server to set limits for the logs. Usually it’s something like ‘2 months ago<’. For all possible values, read the help for the option -d in cvs help for its log command, e.g, type:

% info -n '(cvs)log options'
–host STR

A hostname of a remote server.

–port N

A port number (default is 2401) of the remote server.

–user STR

A user name on the remote server.

–pass STR

A password for the user on the remote server.

–cvsroot DIR

CVSROOT on a remote server.

–ports-tree DIR

A directory that follows CVSROOT and serves as a ports tree. For example, CVSROOT can be /home/ncvs and the ports directory can be ports or may be empty at all.

–vcs-version

Just get version of a remote VCS server and exit.

–cvs-pass-scramble STR

A handy option for encrypting…

–cvs-pass-descramble STR

… and decrypting CVS passwords.

-V

Show portvcs version and exit.

-v

Be more verbose. You can supply it several times, viz. -vv dumps even more debug info.

Configuration

portvcs looks for its configuration at 3 places at start up.

  1. At PORTVCS_CONF env variable. (Its format is exactly similar to CL options.)

  2. At the configuration file. Its default name is portvcs.yaml and it can be stored in several system directories which are observable by --config--dirs CL option.

  3. At command line.

Higher number levels overrides the values from lower number levels.

The configuration file must be in YAML format. Look into `gem env gemdir`/gems/portvcs-x.y.z/etc/ directory for samples.

Environment

PAGER

Output from the VCS server goes here.

PORTVCS_CONF

See Configuration.

Examples

% portvcs www/firefox
% portvcs /usr/ports/www/firefox
% portvcs www/firefox/files/patch-configure.in

% pwd
/usr/ports/x11-toolkits/gtk20
% portvcs Makefile
% portvcs files/patch-gtk_gtksignal.h
% portvcs -d '3 month ago<' .