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)