Package DE_EPAGES::Installer::API::CVSTagHandler
Collection of utility functions for tag process
Base |
DE_EPAGES::Core::API::CVS |
Functions
- checkout
- commit
- contentChanged
- deleteRevisions
- getChangedFiles
- getChangedFilesWithChangedContent
- getChangedFilesWithUnchangedContent
- getInfoForTag
- getLatestCorrespondingHotFixTag
- getMergeRevisions
- getPreviousRevision
- getRevision
- getRevisionDiff
- getRevisionDifffAsHash
- getRevisionRdiff
- inspectionAffectedFile
- isDirectSuccessor
- mergeChangesIntoBrach
- patchAffectedFile
- removeTag
- sendInspectionFileMail
- sendMergeMail
- sendPatchFileMail
- setTag
- updateChanges
- updateChangesHash
- updatePatchTag
- updateReleaseTag
checkout
executes cvs checkout on cvsfile, using branch or revision to target directory
Syntax |
$CVSTagHandler->checkout( $CVSFile, $BranchOrRevision, $TargetDirectory ); |
Input |
|
Return |
|
commit
commit passed file to cvs with passed comment
Syntax |
$CVSTagHandler->commit( $Comment, $TargetFileName ); |
Input |
|
Return |
|
contentChanged
returns true if the content changed between revisions tagged with specific tags
Syntax |
$ContentChanged = $CVSTagHandler->contentChanged( $File, $StartTag, $EndTag ); |
Input |
|
Return |
|
deleteRevisions
delete all revisions from start revision to end revision, inclusive, on the same branch handle with care
Syntax |
$CVSTagHandler->deleteRevisions( $StartRevision, $EndRevision, $TargetFileName ); |
Input |
|
Return |
|
getChangedFiles
return the list of files that are taggt and have changed revision Optional Parameter:
- cvsdirectory - cvs directory where rdiff called, default = 'RND/epages/epages5/AllOS/Cartridges'
- verbose - flag to print messages
Syntax |
$Handler->getChangedFiles( $StartTag, $EndTag, %hOptions ); |
Example |
my $aList = $Handler->getChangedFiles( 'release_6_11_3', 'patch_6_12_0', {'cvsdirectory' => 'RND/epages/epages5/AllOS/Cartridges/Presentation'} ); |
Input |
|
Return |
|
getChangedFilesWithChangedContent
return the list of files that are taggt and have changed revisions and changed content Optional Parameter:
- cvsdirectory - cvs directory where rdiff called, default = 'RND/epages/epages5/AllOS/Cartridges'
- verbose -
Syntax |
$Handler->getChangedFilesWithChangedContent( $StartTag, $EndTag, %hOptions ); |
Example |
my $aList = $Handler->getFileListUnchangedContent( 'release_6_11_3', 'patch_6_12_0', {'cvsdirectory' => 'RND/epages/epages5/AllOS/Cartridges/Presentation'} ); |
Input |
|
Return |
|
getChangedFilesWithUnchangedContent
return the list of files that are taggt and have changed revisions but identical content Optional Parameter:
- cvsdirectory - cvs directory where rdiff called, default = 'RND/epages/epages5/AllOS/Cartridges'
- verbose -
Syntax |
$Handler->getChangedFilesWithUnchangedContent( $StartTag, $EndTag, %hOptions ); |
Example |
my $aList = $Handler->getFileListUnchangedContent( 'release_6_11_3', 'patch_6_12_0', {'cvsdirectory' => 'RND/epages/epages5/AllOS/Cartridges/Presentation'} ); |
Input |
|
Return |
|
getInfoForTag
returns the name of the engineer that checked in the file tagged with specific tag
Syntax |
$EngineerName = $CVSTagHandler->getInfoForTag( $File, $Tag ); |
Input |
|
Return |
|
getLatestCorrespondingHotFixTag
returns the highest hot fix tag of the file tagged with specific tag
Syntax |
$HotFixTag = $CVSTagHandler->getLatestCorrespondingHotFixTag( $File, $Tag ); |
Input |
|
Return |
|
getMergeRevisions
returns the revisions to be merged
Syntax |
$CVSTagHandler->getMergeRevisions( $aRevisions ); |
Input |
|
Return |
|
getPreviousRevision
returns the predecessor of passed revision
Syntax |
$CVSTagHandler->getPreviousRevision( $Rev ); |
Input |
|
Return |
|
getRevision
returns the revision of the file tagged with specific tag
Syntax |
$Revision = $CVSTagHandler->getRevision( $File, $Tag ); |
Input |
|
Return |
|
getRevisionDiff
executes cvs diff command
Syntax |
$CVSTagHandler->getRevisionDiff( $StartRevision, $EndRevision, $TargetFileName ); |
Input |
|
Return |
|
getRevisionDifffAsHash
executes cvs diff command and transforms result in hash
Syntax |
$CVSTagHandler->getRevisionDifffAsHash( $StartRevision, $EndRevision, $TargetFileName ); |
Input |
|
Return |
|
getRevisionRdiff
executes cvs rdiff command
Syntax |
$CVSTagHandler->getRevisionRdiff( $StartRevision, $EndRevision, $CVSFile ); |
Input |
|
Return |
|
inspectionAffectedFile
return true if the file is inspection relevant
Syntax |
$FileIsAffectedByInspection=$Handler->inspectionAffectedFile( $FilePath ); |
Example |
if ($Handler->inspectionAffectedFile('RND/epages/epages5/AllOS/Cartridges/DE_EPAGES/Object/API/Cartridge.pm')){ ... }; |
Input |
|
Return |
|
isDirectSuccessor
returns true if the second revision is direct successor of first revision
Syntax |
$CVSTagHandler->isDirectSuccessor( $Rev1, $Rev2 ); |
Input |
|
Return |
|
mergeChangesIntoBrach
executes cvs checkout on cvsfile, using branch or revision to target directory
Syntax |
$CVSTagHandler->mergeChangesIntoBrach( $CVSFile, $hRevisions, $BranchName, $Comment, $TargetDirectory ) |
Input |
|
Return |
|
patchAffectedFile
return true if the file is patch relevant
Syntax |
$FileIsAffectedByPatch=$Handler->patchAffectedFile( $FilePath ); |
Example |
if ($Handler->patchAffectedFile('RND/epages/epages5/AllOS/Cartridges/DE_EPAGES/Object/API/Cartridge.pm')){ ... }; |
Input |
|
Return |
|
removeTag
remove a tag from file
Syntax |
$Handler->removeTag( $File, $Tag ); |
Example |
my $Message = $Handler->removeTag( 'RND/epages/epages5/AllOS/Cartridges/DE_EPAGES/Object/API/SQLCompare.pm', 'patch_6_12_1', ); |
Input |
|
Return |
|
sendInspectionFileMail
send an info Mail to the inspection engineer
Syntax |
$Handler->sendInspectionFileMail( $Tag, $MailAddress, $aChangedFiles, $aDeletedFiles, $aPatchFiles, $aManuelSetReleaseFiles ); |
Example |
$Handler->sendPatchFileMail( 'patch_6_13_0', 'patch@epages.com' \@ChangedFiles, \@DeletedFiles, \@PatchFiles, \@ManualSetReleaseFiles ); |
Input |
|
sendMergeMail
sends merge mail to adresses in mail adress array
Syntax |
$CVSTagHandler->sendMergeMail( $aMailAddress, $Message, $EPG, $ahFiles ); |
Input |
|
sendPatchFileMail
send an Info Mail to the patch building engineer
Syntax |
$Handler->sendPatchFileMail( $Tag, $MailAddress, $aChangedFiles, $aDeletedFiles ); |
Example |
$Handler->sendPatchFileMail( 'patch_6_13_0', 'patch@epages.com' \@ChangedFiles, \@DeletedFiles ); |
Input |
|
setTag
set a tag on file
Syntax |
$Handler->setTag( $File, $TargetTagOrRevision, $Tag ); |
Example |
my $Message = $Handler->setTag( 'RND/epages/epages5/AllOS/Cartridges/DE_EPAGES/Object/API/SQLCompare.pm', 'release_6_12_2', 'patch_6_12_2' ); my $Message = $Handler->setTag( 'RND/epages/epages5/AllOS/Cartridges/DE_EPAGES/Object/API/SQLCompare.pm', '1.2.43.2', 'patch_6_12_2' ); |
Input |
|
Return |
|
updateChanges
update changes from start revision to end revision
Syntax |
$CVSTagHandler->updateChanges( $StartRevision, $EndRevision, $TargetFileName ); |
Input |
|
Return |
|
updateChangesHash
update changes from start revision to end revision
Syntax |
$CVSTagHandler->updateChangesHash( $hRevisions, $TargetFileName ); |
Input |
|
Return |
|
updatePatchTag
update the patch tag for files where content changed between release tags, the release tag have to be already updated Optional Parameter:
- cvsdirectory - cvs directory where rdiff called, default = 'RND/epages/epages5/AllOS'
- verbose - show messages
Syntax |
updatePatchTag( $ReleaseOld, $ReleaseNew, $PatchNew, $hOptions ); |
Example |
$Handler->updatePatchTag( 'release_6_12_0', 'release_6_12_1', 'patch_6_12_1', { 'cvsdirectory' => 'RND/epages/epages5/AllOS/Cartridges/Presentation', 'verbose' => 1 } ); |
Input |
|
updateReleaseTag
update the patch tag for files where content changed between release tags, the release tag have to be already updated Optional Parameter:
- updatepatchtag - cvs directory where rdiff called, default = 'RND/epages/epages5/AllOS'
- verbose - show messages
Syntax |
$Handler->updateReleaseTag( $ReleaseOld, $ReleaseNew, $PatchNew, $hOptions ); |
Example |
$Handler->updateReleaseTag( 'release_6_12_0', 'release_6_12_1', 'patch_6_12_1', 'B_patch_6_12_1', { 'updatepatchtag' => '1', 'verbose' => 1 } ); |
Input |
|