Dominique Dumont

NAME

VcsTools::DataSpec::HpTnd - Hp Tnd custom data for HMS logs

SYNOPSIS

 use VcsTools::DataSpec::HpTnd qw($description readHook);
 use VcsTools::LogParser ;

 my $ds = new VcsTools::LogParser 
  (
   readHook => \&readHook,
   description => $description
  ) ;

DESCRIPTION

This class contains all the custom information needed to retrieve our data from our database using the generic VcsTools::LogParser class.

The $description hash ref defines the informations that are contained in the log of each version of the HMS file.

Needless to say this file is tailored for HP Tnd needs and HMS keywords. Nevertheless, it can be used as a template for other VCS systems and other needs.

HP TND DATA DESCRIPTION

state

Taken from 'state' HMS field. It can be either Dead Exp Team Lab Special or Product according to the level of confidence.

branches

Taken from 'branches' HMS field. List the branches of a version. read-only value.

author

Taken from 'Author' HMS field. Name of the author of the revision or the name of the last guy who modified the HMS log.

date

Date of the archive. Set by HMS. read-only value.

merged from

Specifies if this version is a merge between the parent revision and another revision.

comes from

Explicitely specifies the parent revision. Use this field when the parent cannot be infered. For instance, when the revision number jump from 1.19 to 2.1, set the 'comes from' field of the revision '2.1' to '1.19'.

writer

The original writer of this version. Since HMS changes the 'Author' field whenever you edit the history of a version, this field keeps track of the guy who actually archived this version.

keywords

Keyword which refers to the functionnality added in this version. (could be 'ANSI', 'cosmetic', 'doc_update' ...).

fix

Official names of the bugs fixed in this version (a la 'GREhp01234').

misc

Miscellaneous comments about this version.

CHANGE MODEL

The 3 following keywords try to provide a model for changes introduced with each revision of a file.

behavior change

Specify whether this code can smoothly replace the previous revision. Can be 'none', 'cosmetic', 'minor','major'

Still need a clear definition of what it means.

interface change

Specify the amount of change seen from the compiler's point of view. For a header file, for instance, 'cosmetic' might mean 're-compilation needed', 'major' might mean 'code change needed in user code'.

Can be 'none', 'cosmetic', 'major'

inter-peer change

Specify whether this code can inter-work with the previous revision.

Can be 'none', 'cosmetic', 'major'

HOOKS

readHook(hash ref)

This method will try to get more information from the log of each revision.

If the 'fix' field is empty, readHook will look for GREhpxxxx keywords in the log to guess what was fixed in this revision. Of course, it may guess wrong if the log contains "Gee I forgot to fix GREhp00007".

If the 'keywords' field is empty, readHook will look for keywords matching /\b([A-Z\d]{2,})\b/ in the log to guess what was added in this revision. The result is often relevant, but is sometime silly.

AUTHOR

Dominique Dumont, Dominique_Dumont@grenoble.hp.com

Copyright (c) 1998-1999 Dominique Dumont. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

perl(1)