cvsims

  • Posted on
  • by
  • in
  • Updated triggers on ccase-rmna-3 as some new vobs seem to lack them
  • Updated cvsims to parse input and handle both -pre and -post operations
  • Had problems with CVS admin files

CVSIMS

I have managed to learn how to update IMS and I'm at the point where I need to understand the input requirements better. I will describe what I envision happening and follow it with a few questions.

In general the desire seems to be to update IMS when a commit happens in certain CVS repositories1. As such commit comment information will need to conform to a certain format. Commit comments need to have the following in them identifying the IMS Issue ID they are associated with:

IMSIssueID: <issue ID>

Pre-commit checks (i.e. verifymsg)

The string "IMSIssueID: " must appear at the start of a line followed by the issue ID2. The IMSIssueID must exist in IMS3. If the issue ID is not in IMS then the commit will not be allowed. Commits lacking any IMSIssueID will be rejected4.

Post-commit operations (i.e. loginfo)

If the pre-commit checks pass the IMS issue will have it's change set field updated with the file names of the committed files. As change set is an append only field the following separator will be added first followed by the list of files5:

# <USERNAME> <DATE_TIME> committed:
file1
file2
...

Again, as change set is an append only field there may be multiple updates like so:

# <USERNAME> <DATE_TIME> committed:
file1
file2
...
# <USERNAME> <DATE_TIME> committed:
file10

Questions

  1. Which repositories does this apply?
  2. Are multiple IMSIssueIDs allowed? If so then are multiple lines such as the above acceptable or should the script search for perhaps a comma separated list of issue IDs?
  3. Should the script also check to insure that the issue ID is not in say a closed state?
  4. Is it true that all commits in a repository/module/directory must be associated to an IMS Issue?
  5. In addition to the file name should we include the revision checked in? Also should any other information be logged (e.g. repository)?

CVS Admin Files

I got myself into a pickle. Here's what I was doing...

I wanted to modify rcsinfo, verifymsg and loginfo in our CVS test area (:pserver:adefaria@cvsps-irva-1:/projects/ccase_irva/cvsmaster) so I checked out CVSROOT and modified those files. The idea was to have rcsinfo point to a template file so the user knows where to put the IMSIssueID, change verifymsg to call cvsism (the connector) to verify that it can find the IssueID and that the IssueID exists in IMS and change loginfo to call cvsism to update the change set after the commit. Unfortunately I modified the files in such a way that I cannot check in at all. I need help in fixing this because I believe what needs to be done needs to be done on the server and I don't have a login there let alone root access.

The problem is that I don't understand what the cwd is when CVS fires off these triggers. For example, in rcsinfo I have the following line:

ALL /tmp/IMSIssueTemplate

"ALL" means for all files and /tmp/IMSIssueTemplate is the template file. But where is /tmp? Is it supposed to be on the server? Where's a good place to put these template files?

In verifymsg I have:

DEFAULT SCM/cvsbin/cvsims -pre

I want to run cvsims (which is in my home directory under SCM/cvsbin) but this also fails. As a result of this I cannot use cvs commit to change verifymsg, hence I'm stuck!

In loginfo I have:

DEFAULT SCM/cvsbin/cvsims -post %{s}

Again SCM/cvsbin/cvsims is not a valid path.

How can I get this fixed? Where should I put these files?