CMVC FREQUENTLY ASKED QUESTIONS: MISCELLANEOUS TOPICS (USERS, DEFECTS/FEATURES, ACCESS) Document Number TR 29.xxxx Angel Rivera and Lee Perlov CMVC/TeamConnection Development IBM Software Solutions Research Triangle Park, North Carolina Copyright (C) 1997 IBM Corp. All rights reserved. ii CMVC FAQ: end user tasks ABSTRACT This technical report provides answers to frequently asked questions made by CMVC users with respect to miscellaneous topics (users, defects/features, access) ITIRC KEYWORDS o CMVC o components o defects o features o users ABSTRACT iii iv CMVC FAQ: end user tasks ABOUT THE AUTHOR ANGEL RIVERA Mr. Rivera is an Advisory Software Engineer and team lead for the development of CMVC 2.3. He joined IBM in 1989 and since then has worked in the development and support of library systems. Mr. Rivera has an M.S. in Electrical Engineering from The Univer- sity of Texas at Austin, and B.S. in Electronic Systems Engi- neering from the Instituto Tecnologico y de Estudios Superiores de Monterrey, Mexico. LEE R. PERLOV Mr. Perlov is a Staff Software Engineer in the TeamConnection/CMVC development group. He started working for IBM in 1985 in Gaithersburg, Md, working in the Federal Systems Division on various projects for the United States intelligence community. He then moved to RTP to work on library development and support. Mr. Perlov received a B.S.Acc degree in Accounting from the Uni- versity of Florida in 1983. He also completed two years of grad- uate work in the Department of Computer Science at the University of Florida. ABOUT THE AUTHOR v vi CMVC FAQ: end user tasks CONTENTS ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . III ITIRC KEYWORDS . . . . . . . . . . . . . . . . . . . . . iii ABOUT THE AUTHOR . . . . . . . . . . . . . . . . . . . . . . V Angel Rivera . . . . . . . . . . . . . . . . . . . . . . . v Lee R. Perlov . . . . . . . . . . . . . . . . . . . . . . . v FIGURES . . . . . . . . . . . . . . . . . . . . . . . . . . IX 1.0 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Acknowledgements . . . . . . . . . . . . . . . . . . . 1 2.0 GENERAL . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 Is CMVC going to work with the Year 2000? . . . . . . 3 2.2 Does CMVC support encryption between the client and the server? . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 Does CMVC complies with military specifications? . . . 4 2.4 Are CMVC and TeamConnection compatible between each other? . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.5 What are the known incompatibilities with the CMVC versions? . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.6 Clarification to sizes in Chapters 6 and 7, CMVC User's Reference . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.7 Using different time zones with the CMVC client and server . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.7.1 Other tricks with time . . . . . . . . . . . . . . 6 2.8 What is the authentication mechanism for CMVC? . . . . 7 2.9 Why a long family name (with port number) has priority over short name? . . . . . . . . . . . . . . . . . . . . . 8 2.10 Clarification of Flag Arguments, in page 3 of Commands Reference . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.0 END USER TASKS . . . . . . . . . . . . . . . . . . . . . 9 3.1 Sample profile for a CMVC client . . . . . . . . . . . 9 3.2 How to get the first baseline in CMVC? . . . . . . . . 9 3.3 Usage of NULL to reset to 0 characters certain attributes in CMVC . . . . . . . . . . . . . . . . . . . 13 3.4 Imbedding newline characters into comments . . . . . 14 3.4.1 Unix . . . . . . . . . . . . . . . . . . . . . . 14 3.4.2 OS/2 . . . . . . . . . . . . . . . . . . . . . . 15 3.5 How to delete an object in CMVC? . . . . . . . . . . 16 3.6 Can the test records be assigned to other than the environment person? . . . . . . . . . . . . . . . . . . . 17 3.7 What are the prerequisites for enabling/disabling subprocesses? . . . . . . . . . . . . . . . . . . . . . . 17 3.8 Using Unix alias and wrappering CMVC Commands . . . 20 3.8.1 Aliasing commands . . . . . . . . . . . . . . . . 20 3.8.2 Wrappering a command . . . . . . . . . . . . . . 20 Contents vii 4.0 DEFECTS AND FEATURES . . . . . . . . . . . . . . . . . 23 4.1 Cannot use a binary file as input to the remarks for a defect . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2 Cannot modify old remarks in a defect . . . . . . . 23 4.3 Is it normal to have duplicate verification records? 23 4.4 How to list all the defects of a component and its children . . . . . . . . . . . . . . . . . . . . . . . . 24 4.5 Biggest complaints about defects and features . . . 24 5.0 ADMINISTRATION OF USERS . . . . . . . . . . . . . . . 27 5.1 How to modify an email thru the backdoor that has > 15 characters . . . . . . . . . . . . . . . . . . . . . . . 27 5.2 Error 0010-655 when trying to delete a userid . . . 29 5.3 Broadcasting a message to all active CMVC users . . 29 6.0 AUTHORITY ACCESS . . . . . . . . . . . . . . . . . . . 31 6.1 Component owner cannot give obvious authority to other users . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.2 Cannot look at the contents of a file with general authority . . . . . . . . . . . . . . . . . . . . . . . . 32 6.3 How to specify a read-only access to files in a component structure . . . . . . . . . . . . . . . . . . . 33 6.4 What is the role of the CMVC user id "InheritedAccess"? . . . . . . . . . . . . . . . . . . . 33 6.5 How do I know if the authority has been restricted in a component? . . . . . . . . . . . . . . . . . . . . . . 34 6.6 Example of inherited access in a component hierarchy 34 6.7 Can the base authorities be restricted? . . . . . . 35 6.8 Additional details on restricting authority access . 36 6.9 Can I specify for files: RO Access to all . . . . . 37 7.0 SPECIAL REPORTS . . . . . . . . . . . . . . . . . . . 39 7.1 Hint when using % in queries in REXX files . . . . . 39 7.2 How to list all files checked in between 2 dates? . 39 7.3 How to get a list of all components that have files in a given release? . . . . . . . . . . . . . . . . . . . . 40 7.4 To get numeric sorting, use versionid instead of versionSID . . . . . . . . . . . . . . . . . . . . . . . 40 7.5 Where do the numbers for defects and features come from? . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.6 Why does "field <> 'value'" not include null? . . . 41 7.7 Sorting defect/feature names . . . . . . . . . . . . 42 7.8 Use of 1=1 as argument to query for all instances of an object . . . . . . . . . . . . . . . . . . . . . . . . 43 7.9 How to specify dates in a query? . . . . . . . . . . 43 7.10 How do I use a Report command in a shell script? . 44 8.0 NOTIFICATION . . . . . . . . . . . . . . . . . . . . . 45 8.1 Who gets notified when a CMVC action occurs? . . . . 45 8.2 How to remove specific notification messages from CMVC? . . . . . . . . . . . . . . . . . . . . . . . . . . 45 9.0 OTHER IDEAS . . . . . . . . . . . . . . . . . . . . . 47 9.1 Warning against developer+: . . . . . . . . . . . . 47 viii CMVC FAQ: end user tasks 9.2 A second account for notifications . . . . . . . . . 47 APPENDIX A. BIBLIOGRAPHY . . . . . . . . . . . . . . . . . 49 A.1 How to get electronic copies of manuals and TRs . . 49 A.1.1 IBM Intranet . . . . . . . . . . . . . . . . . . 49 A.1.2 Internet . . . . . . . . . . . . . . . . . . . . 50 APPENDIX B. COPYRIGHTS, TRADEMARKS AND SERVICE MARKS . . . 53 FIGURES 1. Example of inherited access . . . . . . . . . . . . . 35 Contents ix x CMVC FAQ: end user tasks 1.0 INTRODUCTION This technical report provides answers to frequently asked questions made by CMVC users with respect to miscellaneous topics (users, defects/features, access) This technical report covers the following topics: o General o End user tasks o Defects and features o Administration of users o Components and authority access o Special reports o Notification 1.1 ACKNOWLEDGEMENTS Many of the questions and answers that are compiled in this tech- nical report were obtained from the CMVC forum in the IBMPC con- ferencing disk, and from the CMVC6000 forum in the IBMUNIX conferencing disk. I want to thank the main participants in these electronic forums for their support! +--- ANGEL -----------------------------------------------------+ | | | Add other preface stuff here | | | +---------------------------------------------------------------+ Introduction 1 2 CMVC FAQ: end user tasks 2.0 GENERAL 2.1 IS CMVC GOING TO WORK WITH THE YEAR 2000? QUESTION: Is CMVC going to work with the Year 2000? ANSWER: CMVC V1 and V2 store dates with only two digits for the year. Thus, the sorting of objects by date may give incorrect results, because the year "1997" is represented as "97" but the year "2000" is represented as "00". CMVC does not manipulate in any way the year information and relies on the underline database for the sorting. Besides this known fact, there are no other functional problems with CMVC for the Year 2000. 2.2 DOES CMVC SUPPORT ENCRYPTION BETWEEN THE CLIENT AND THE SERVER? QUESTION: Does CMVC support encryption between the client and the server? ANSWER: CMVC does not explicitly support any encrypting mechanism. However, as long as the CMVC server and CMVC client are not aware of any data encryption, it would be possible to do encryption (probably by hardware) in the communications channel. General 3 2.3 DOES CMVC COMPLIES WITH MILITARY SPECIFICATIONS? QUESTION: Does CMVC complies with military specifications MIL-2167 and MIL-0937? ANSWER: CMVC does not have to conform to the military specifications, but the organization using CMVC needs to do it. In order for the organization to comply with these specifications, the organiza- tion must collect certain information and follow a certain process. Through its configurable fields, user exits, selectable processes and e-mail notification, CMVC can support an organization that needs to operate according to military standards. In installa- tions like this, you most certainly need a consultant that knows how to configure CMVC to use the labels and definitions from the military specifications. Also, the development organization of the customer usually decides (or is being told by a higher authority) to what extent they must follow the military specifi- cations and what processes to use during various development phases. Here, the configurability of the SCM tool is essential, as it needs to support their process and collect the information they need. 2.4 ARE CMVC AND TEAMCONNECTION COMPATIBLE BETWEEN EACH OTHER? QUESTION: Are CMVC and TeamConnection compatible between each other? ANSWER: Although TeamConnection is the successor product to CMVC and there is a lot of common functionality between these products, there is NO compatibility between CMVC and TeamConnection. That is, a CMVC client cannot work with a TeamConnection server, nor a TeamConnection client can work with a CMVC server. TeamConnection provides migration tools to help migrate a CMVC family to TeamConnection. 4 CMVC FAQ: end user tasks 2.5 WHAT ARE THE KNOWN INCOMPATIBILITIES WITH THE CMVC VERSIONS? QUESTION: What are the known incompatibilities with the CMVC versions? ANSWER: CMVC version 2 is not compatible with CMVC Version 1 nor with any version of TeamConnection. Any CMVC V2 client can work with any CMVC V2 server, the exceptions are the OS/2 and Windows client that require at least a CMVC 2.2 server. There are no other restrictions with respect to operating systems. For example, a CMVC V2.1 client in HP-UX can work with a CMVC V2.3 server on AIX. +--- SUMMARY OF NEW STUFF --------------------------------------+ | | | Angel, good place to put summary of incremental changes to | | CMVC | | | +---------------------------------------------------------------+ 2.6 CLARIFICATION TO SIZES IN CHAPTERS 6 AND 7, CMVC USER'S REFERENCE QUESTION: Clarification to sizes in Chapters 6 and 7, CMVC User's Reference ANSWER: The sizes for most of the fields in the Chapter 6 (Views for Queries) and Chapter 7 (Tables for Queries) of the CMVC User's Reference manual show a number that is higher than the one actu- ally used by the CMVC server which works with a number of charac- ters that is half that original number. This means that if Release Name has a size of 31 (characters) it can only accept 15 bytes. This method forces a limitation of Single Byte Character Set (SBCS) and Double Byte Character Set (DBCS) strings to the number of characters. This means that although the Release Name has the field length of 31 bytes, it can accommodate only 15 SBCS charac- ters and 7 DBCS characters. General 5 NOTE: The reason for a 31 bytes is that the field allows 2 bytes for each character, plus 1 byte for the NULL to terminate the string. 2.7 USING DIFFERENT TIME ZONES WITH THE CMVC CLIENT AND SERVER QUESTION: Without actually changing the time zone used on the host, is there any way to convert dates by time zones within CMVC? ANSWER: The Date and Time is a field obtained from the database (it is a string), and it is the date and time of the CMVC server. There are no functions in CMVC that will change the value of this string to accommodate for the different time zones between the server and the client. 2.7.1 Other tricks with time _____________________________ There are several other cases where it is useful to change the system time temporarily in order to do something in CMVC. We don't strongly recommend these, but some of our customers have found these steps useful. o Checking out a ifile that hasn't been changed in over a year. SCCS returns a warning when checking out a file that hasn't been changed in over a year. This is distracting for CMVC. If you have lots of such files to change, it is better to backdate your system while checking out, then set the system back to current time to check in. +--- VERIFY ------------------------------------------------+ | | | Angel, can you verify that CMVC will let you check in a | | file held for over 1 year (I think so). | | | +-----------------------------------------------------------+ o Restoring from an archive. If you need to restore from an old archive (i.e. create a new family from an archive). Rolling back the date of the system will give a consistent date for all restored objects, including the database. 6 CMVC FAQ: end user tasks 2.8 WHAT IS THE AUTHENTICATION MECHANISM FOR CMVC? QUESTION: What is the authentication mechanism for CMVC? How could I become another CMVC user? ANSWER: The authentication mechanism for CMVC is as follows: o You need to be authorized to access CMVC from a known host and as a known CMVC user id. For example, from host "cordoba" and as user "rivera". o However, if we rely only on those 2 variables, then anybody that has access to the host "cordoba" could login into a CMVC family as a superuser, and possibly cause havoc in the family. o Therefore, a third variable comes into play: because CMVC does not have passwords for users, but the UNIX operating system does, then CMVC forces to you login into the operating system (and thus, you have to provide a password for authentication to the operating system). When you do this login action, you have to use a name, for example the system login "rivera". We called it the system login id, and this is the 3rd variable that is needed. Because the OS/2 and Windows operating systems do not have a login mechanism, the CMVC_USER and USER variables are used as the system login. o Then you need to have an authorized set of these 3 variables registered with CMVC in order to be authenticated as a valid user. This scheme allows to have multiple roles with CMVC. For example, I have both a CMVC normal user id "rivera" and a CMVC superuser id "su_angel", but I have a system login of "rivera" only. I do not have a special UNIX account called "su_angel". Thus, I have 2 hosts lists, both of which have the same system login (rivera) and host, and one host list has the CMVC user id of "rivera" and the other has the user id of "su_angel" o I hope that I do not confuse with the following: Unfortunately, CMVC is NOT consistent with the usage of Login and Userid. Sometimes they are mixed up, and this causes confusion, specially with the line commands, which were created first in the history of the evolution of CMVC. For- General 7 tunately, the GUI tries to alleviate this problem and it is more consistent with the terms. 2.9 WHY A LONG FAMILY NAME (WITH PORT NUMBER) HAS PRIORITY OVER SHORT NAME? QUESTION: Why a long family name (such as familyName@hostName@4321) has priority over short name (such as familyName or familyName@hostName? ANSWER: The long family name format is: familyName@hostName@portNumber When you specify just the family name without the @'s, CMVC uses the name to find the host name and port number from the nameserver (or the local /etc/hosts file) and the /etc/services file. When you specify the hostName and port number, then CMVC does not do any name resolution. Thus, you can put anything you want as the "familyName" and you will still connect to the specified port on the specified host. 2.10 CLARIFICATION OF FLAG ARGUMENTS, IN PAGE 3 OF COMMANDS REFERENCE QUESTION: Clarification of Flag Arguments, in page 3 of Commands Reference ANSWER: The "Name" value that follows a flag of a CMVC command has another restriction besides the ones mentioned in the table in page 3 of the CMVC Commands Reference: The Name cannot begin with a + (plus) or a - (minus) character. This limitation is needed to avoid confusion with other Flags, which always begin with any of these 2 characters. 8 CMVC FAQ: end user tasks 3.0 END USER TASKS 3.1 SAMPLE PROFILE FOR A CMVC CLIENT QUESTION: Is there a sample profile ready-to-use for a CMVC client? ANSWER: Starting with CMVC 2.3.0.18, we are providing an excellent sample profile for a CMVC client. We strongly recommend that for every client, regardless of the expertise of the user, the CMVC client sample profile should be used as the profile for the CMVC client (or at least to be used as the basis for the profile). We are constantly adding new environment variables and adding new hints and tips. The client sample profile has variables that are dependent on the operating system and which are commented out; it is the responsi- bility of the CMVC user to review the entire profile and uncom- ment those variables that are appropriate. The CMVC client sample profile is located in: /usr/lpp/cmvc/samples/profile.user 3.2 HOW TO GET THE FIRST BASELINE IN CMVC? QUESTION: Now that CMVC is installed and ready to be used, what should I do to get the first baseline of the files that I have in my work- station and that I want to store in CMVC? ANSWER: If you are a novice user, it is recommended to use the CMVC GUI for now. This example will emphasize it. If you are using the CMVC GUI for OS/2 or Windows, then you will find everything you need in the "selected" menu. In UNIX, use the "actions" and "show" menus. Here are the steps to follow to obtain your first baseline of the files to be stored in CMVC by using tracks and levels, which are strongly recommended for normal production work. End user tasks 9 1. The CMVC family administrator or a superuser needs to create the following: o Users and their host list entries. o The component hierarchy. o The release or releases. o The authority for the users to access the component hier- archy. 2. Ensure that the process configuration for the main component where you will open the initial feature has the following subprocesses: o dsrFeature is probably on but not necessary for you right now 3. Ensure that process configuration" for your release has the following subprocesses: o track should be on o approval is probably on but not necessary for you right now o fix is on o level should be yes o test is probably on but not necessary for you right now 4. To exploit the values from the Options (UNIX) or Settings (OS/2 and Windows) window, you could setup the following default values: For UNIX, OS/2 and Windows: o Relative directory: Specify the full path name of the directory that is the top one that has the beginning of your file structure. For example, let's suppose that you have the following files in your workstation and you want to create them in CMVC: /home/user1/src/cat/file1 /home/user1/src/file2 /home/user1/makefile Furthermore, later on when you extract the files from CMVC you want to preserve the original meaningful direc- tory path: src/cat/file1 src/file2 makefile In this case you need to specify that the relative direc- tory is: 10 CMVC FAQ: end user tasks /home/user1 For OS/2 and Windows only: a. Component. b. Release. 5. Bring up the Features window. From the pull down menu, create a feature which will be used to create the files into CMVC from the files in your work- station to obtain your first baseline. 6. Refresh the list of the Features window in order to see the entry for the new feature. 7. If dsrFeature is on, you need to perform the "design, size, and review" steps, by highlighting the feature and selecting the proper action from the pull down menu. You need to provide a value for the remarks when doing the design step. However, for the other steps, you may not need to specify remarks. 8. Accept the feature. This action moves the feature to the Working state. 9. Create a track for your feature and the desired release. If the approval subprocess is active for the release, then the track is created in the Accept state. Otherwise, the track is created in the Fix state (we are assuming that this subprocess is active for this example). 10. From the Features window, highlight the desired feature and select the action Show Tracks. This will bring up the Tracks window. 11. From the Tracks window then you could select to show the Approval Records (if using the approval subprocess) or the Fix Records. 12. If the approval subprocess is on, then you need to show the Approval records for your track and accept them; you could also abstain. Any of the above actions will move the track to the Fix state. However, if you reject the approval records, then the track does not move to the Fix state. End user tasks 11 13. Once a track is in the Fix state, then you can now handle files. From the CMVC Task window you could bring up the Files window and select the Create action from the pulldown menu. You could use the Choices button next to the path name field. This will show you all the files that are available from the relative directory specified in the settings. NOTE: When using OS/2 and Windows, the file names are shown IN UPPERCASE (this list is provided AS IS by the Operating System, though). However, if you want to develop in multiple platforms such as UNIX (which is case sensitive), then we recommend that the files should be created in lowercase. If you care about the permissions of your files, create together the files that have the same permissions. When handling a list that has multiple files in the same action, CMVC uses the file permissions of the first file of the list for the rest of the files in the list. 14. Because each file in CMVC is associated with a component, then whenever a file change is done (create, checkin, delete, rename) then a fix record is created for each affected compo- nent. The idea behind this concept is that the component owner should be aware of the file changes and approve/abstain/reject them. 15. After you have finished creating and checking in the files from your workstation, then you are ready to complete the fix records. From the Track window, highlight the desired track and select the action that shows the Fix records. The owner for each component involved in the track should handle the fix record and complete it. This actions moves the track to the Integrate state. NOTE: You need to have level process on at this point, or the track will move all the way to complete. 16. From the CMVC Tasks window select the Levels window. Then from the Levels window create a new level for the desired release. A level is a very useful object in CMVC and is used to gather tracks (and the associated file changes) that need to be built together. 12 CMVC FAQ: end user tasks 17. Create a level member for the track. One way to accomplish this action is by highlighting the desired level and then performing the action Add Level Member. 18. Perform a "delta" level extract to a new directory in order to verify that everything is checked in correctly. 19. If you discover that a file is missing, then do the fol- lowing: a. Delete the level member. b. Change the track to the fix state. c. Change the fix record to active. d. Go back to 13 on page 12 20. If all the files are now in the level, then commit the level, then complete it. That should give you a permanent baseline to start from. You can do later on a full extract of this level in order to obtain this baseline. 3.3 USAGE OF NULL TO RESET TO 0 CHARACTERS CERTAIN ATTRIBUTES IN CMVC QUESTION: Usage of NULL/null to reset to 0 characters certain attributes in CMVC ANSWER: Currently it is possible to specify the NULL or null keyword to reset to null (that is, to 0 characters) certain attributes in CMVC, but this is possible only under the following circum- stances: o Only from the line command (it is not possible to do it from the GUI) and using the flag -modify. o Only values that can have free-text can be changed to null, such as the reference field in defect/feature by using the keyword null (or NULL) such as: Defect -modify 247 -reference null The use of "null" in this instance will actually change the contents to zero characters, and will not use the word "null" in the reference field: that is, the field will be blank. End user tasks 13 The exceptions to the use of keyword "null" to make null an attribute are: o Cannot use for configurable fields, such as "target" in defect/feature. o Cannot use for fields that expect a configurable value (that have a "choices" button in the GUI), such as "severity" in defect/feature. o Cannot use for required fields, such as "abstract" in defect/feature. o Cannot reset to null a free-text field that accepts blank spaces. If you need to 'blank' an attribute, it is possible to use the line command with the -modify flag to reset the attribute to a single blank character by using " " as shown in the following example: Defect -modify 247 -reference " " However, this procedure does not actually reset the contents of the attribute to 0 characters. Any searches that use this field, should look for " " instead of using the SQL operators 'is null' or 'is not null'. 3.4 IMBEDDING NEWLINE CHARACTERS INTO COMMENTS The CMVC GUI makes it easy to imbed newline characters into remarks, but the command line leaves you to figure this out on your own. Here are some useful techniques: 3.4.1 Unix ___________ Unix makes it very easy to imbed newline characters into a string: o Escaping the newline You can escape a newline character with a backslash, '/'. For example: Defect -open ... -remarks "This is line one \ and line two" o You can also redirect from standard input You define an "end-of-file" character string (e.g. !EOF), then redirect from standard input. This uses a feature of the CMVC command line interface to support redirection of standard input. Here is an example: 14 CMVC FAQ: end user tasks Defect -open ... -remarks - -family octo < This should also work in the Windows operating system vari- ations. 3.5 HOW TO DELETE AN OBJECT IN CMVC? QUESTION: As a test I created a component named test1, and then immediately deleted it. I did a Show All Components query and the test1 component still shows up. How do I delete a component such that it will no longer be listed on a Show All Components query? ANSWER: When you "delete" most of the objects in CMVC, they are not really deleted, but instead, the Drop Date (or similar field) is filled in. This indicates to CMVC that the object is conceptu- ally deleted. Then, if you want to recreate the "deleted" object later on, CMVC will just erase the value of the Drop Date. If you do not want to see the "deleted" items, you will need to specify the following in the query: and dropDate is null For example, to list all the components, except the deleted ones, you can issue the following query from the Components window: 16 CMVC FAQ: end user tasks name like '%' and dropDate is null order by name However, there are other objects for which the delete action means to be completely deleted from the database, because these objects do not have a dropDate field. These objects are the lists, such as host list, fix record list, etc. 3.6 CAN THE TEST RECORDS BE ASSIGNED TO OTHER THAN THE ENVIRONMENT PERSON? QUESTION: We are using the test subprocess and we have a large number of testers. The test records are created with the environment person as the owner. We do not want to assign all the test records to only one person and then ask that person to reassign them to the other testers. If we do not manually change the owner of the test records, is there a way for tester A to see what their waiting workload is (defects they opened which have unmarked test records)? ANSWER: One suggestion is to use the Notification Lists. The CMVC family administrator could create a new notification group which will include the TrackTest action, and then the testers could subscribe to that notification group for the compo- nent in which the release was created. NOTE: The only purpose for creating a release in a given compo- nent is to inherit the access lists and the notification lists for that component. 3.7 WHAT ARE THE PREREQUISITES FOR ENABLING/DISABLING SUBPROCESSES? QUESTION: What are the prerequisites for enabling/disabling subprocesses? ANSWER: Because of the asynchronous relationship between the predefined CMVC process configuration and the CMVC process being used by releases and components, family administrators should properly End user tasks 17 manage the update of the predefined CMVC process, especially for deleting and modifying existing predefined CMVC process. If it is mismanaged, user confusion may result but the integrity of the CMVC configuration will not be impacted in any way. +-------------------------------+-------------------------------+ | SUBPROCESS | PREREQUISITE | +-------------------------------+-------------------------------+ | dsrDefect, dsrFeature | No defect or feature owned by | | | the component is in design, | | | size or review state. | +-------------------------------+-------------------------------+ | verifyDefect, verifyFeature | No verification record owned | | | by the component is in ready | | | state.(1) | | | | +-------------------------------+-------------------------------+ | approve | No track associated with the | | | release is in the approve | | | state. | +-------------------------------+-------------------------------+ | fix | All fix records associated | | | with the release are in com- | | | plete state. | +-------------------------------+-------------------------------+ | level | All levels are either in com- | | | plete or working state, and, | | | no track is in integrate | | | state. | +-------------------------------+-------------------------------+ | test | No test associated with the | | | release is in ready state. | +-------------------------------+-------------------------------+ Prerequisite for Enabling a subprocess 18 CMVC FAQ: end user tasks +-------------------------------+-------------------------------+ | SUBPROCESS | PREREQUISITE | +-------------------------------+-------------------------------+ | dsrDefect, dsrFeature | None | +-------------------------------+-------------------------------+ | verifyDefect, verifyFeature | None | +-------------------------------+-------------------------------+ | approve | An approver list(4) must | | | exist for the release. | +-------------------------------+-------------------------------+ | fix | None | +-------------------------------+-------------------------------+ | level | No track is in fix or inte- | | | grate state. | +-------------------------------+-------------------------------+ | test | An environment list(4) must | | | exist for the release. | +-------------------------------+-------------------------------+ 1. In general, the prerequisite is checked on a component when the process of the component is being modified. However, in case a defect or feature is assigned to a new component, the prerequisite is checked on a defect (or feature). 2. When 'verify' subprocess is disabled and after successfully validating the prerequisite, CMVC server will remove all the 'notReady' verification record associated the component. In case that only a defect (or feature) is re-assigned from a component with 'verify' subprocess to another one without it, CMVC server will remove all the 'notReady' verification record for that defect (or feature). Those deleted verification records will not be recreated at the time the 'verify' subprocess is enabled or the defect (or feature) is re-assigned to a component with 'verify' sub- process, but are recreated at the time when the defect and/or feature are ready for verification. 3. When 'test' subprocess is disabled and after successfully validating the prerequisite, CMVC server will remove all the 'notReady' test record associated with the release. Those deleted test records will not be recreated at the time the 'test' subprocess is enabled but are recreated at the time when the track are ready for test. 4. Flags are provided in the RELEASE -CREATE command to allow the user to create the approver list and environment list. Example: Release -create releaseName -process processName -environment envName -tester testerName -approver approverName End user tasks 19 3.8 USING UNIX ALIAS AND WRAPPERING CMVC COMMANDS For some CMVC users, a specialized client interface makes more sense than the current, very flexible and complex, command line interface. For many users, they need to interface with such a small part of CMVC (e.g. only opening defects and processing ver- ification records) that the GUI is also more than they need. For these customers, you can do two relatively simple changes outside of CMVC: 3.8.1 Aliasing commands ________________________ Unix provides a simple aliasing tool for Korn shell. There is also one for C-Shell, but I'll only demonstrate Korn shell here. All the alias does is replace the first word typed by the user with a string that can be more than one word long. Here is an example: alias NewDef="Defect -open -family ${CMVC_FAMILY:-toro} -sev 3 ... -remarks" Now, when a user types "NewDef "A new problem ..."", a defect is opened with the remarks specified, and everything else hardcoded or taken from environment variables. 3.8.2 Wrappering a command ___________________________ This is a very simple concept, and if you need to do this you probably already have. However, if you are new to CMVC you might not have gotten around to it yet. Here are some reasons to wrapper a command: o Save typing, as when certain parameters are always the same o When users need to "become" several different CMVC users, based on the task they are performing o When starting the GUI or running commands for several dif- ferent families Since your users are already pointing to the cmvc/bin and cmvc/samples directories, there is no reason to not add shell scripts of your own to the samples directory. If you are worried about overwriting your tools when you do a CMVC upgrade, the put your tools in another directory and symbollically link the files into the samples directory. If you look closely at the CMVC installation, you will see we make liberal use of symbolic links. As for the actual tools, just pick a name (e.g. NewDef), put the file into the samples directory and make it executable. We provide lots of sample with CMVC, this is a simple but effective start: 20 CMVC FAQ: end user tasks #!/bin/ksh echo Executing $0: echo parameters: $* End user tasks 21 22 CMVC FAQ: end user tasks 4.0 DEFECTS AND FEATURES 4.1 CANNOT USE A BINARY FILE AS INPUT TO THE REMARKS FOR A DEFECT QUESTION: While opening a defect, when entering remarks, there is an option to insert the contents of an existing file. However, when trying to insert a file that has binary characters in it, we get a partial file of the ascii up to the binary character, in other words the text is cut at the binary char. Does the remarks field take only ascii characters? ANSWER: Yes, only non-control characters are allowed in the remarks. 4.2 CANNOT MODIFY OLD REMARKS IN A DEFECT QUESTION: I discovered a typo in the remarks that I used to open a defect. Now I would like to fix the typo, but I cannot modify these old remarks. ANSWER: The remarks are part of the audit trail for a defect or feature; this audit trail cannot be modified, it can only be appended, that is, you can only add new text to it, but you cannot delete or modify old text. 4.3 IS IT NORMAL TO HAVE DUPLICATE VERIFICATION RECORDS? QUESTION: When showing verification records of a defect, we got multiple entries with the same defect number but different originators. Is this normal? What is the best way to close these defects? ANSWER: Defects and features 23 Assuming that other defects or features were returned as dupli- cates of the defect with the duplicate verification records, this is normal behavior. Each owner of a verification record has to accept, reject or abstain on his/her record for the defect to get closed. This allows submitters of defects or features that were returned as duplicates to verify that the change they wanted actually got implemented. 4.4 HOW TO LIST ALL THE DEFECTS OF A COMPONENT AND ITS CHILDREN QUESTION: How to do I list the defects of a component and its children? ANSWER: Anyplace where you can specify compName='xyz', you can substitute it with the following: compid in (select childId from CompMemberView where parentCompName='xyz') You will have to do this from the entry field at the bottom of the query window, but you can save the query to the task list or as a default query. NOTE: Some databases are case sensitive. The correct case for each database field, see the CMVC USER'S REFERENCE documents all field names in the correct case. 4.5 BIGGEST COMPLAINTS ABOUT DEFECTS AND FEATURES Stuff to talk about +--- THIS IS JUST A STARTING POINT -----------------------------+ | | +---------------------------------------------------------------+ o What do I do when someone cancels a feature Document user exit to open a new one, as well as suggestions for referencing cancelled features. o What to do when a verification record is rejected A suggested procedure and user exit 24 CMVC FAQ: end user tasks o A better way to use verification records Set authorities so that every user can accept/reject their own verification records, then abstain everyone else's ver- ification records. That way, only one person verifies a defect/feature. This could also benefit from a user exit. o Showing relationship between defects and features during development Use reference on defects to point to related features. Use naming conventions to show relationships. For example, if the feature is 1410, then the defects start with 1410.1 and continue by incrementing the last digit: 1410.2, 1410.3, etc. Defects and features 25 26 CMVC FAQ: end user tasks 5.0 ADMINISTRATION OF USERS 5.1 HOW TO MODIFY AN EMAIL THRU THE BACKDOOR THAT HAS > 15 CHARACTERS QUESTION: How to modify an email thru the backdoor that has > 15 charac- ters. In CMVC 2.3.0.18 we fixed a limitation in the handling of the userid of the email address (the field before the @ "at" sign) in which only the first 15 characters were accepted, and if this filed had more than 15 characters, the message 0010-149 was shown. ANSWER: o Solution: To upgrade to the CMVC version 2.3.0.18 or later. o Workaround: However, if the migration to the latest CMVC release is not feasible at this time, then in some cases, it might be neces- sary to modify the address field for a user that has more than 15 characters (such as: 12345678901234567890@host) and it is possible to do that by bypassing CMVC and using directly the SQL statements; by the way, this is the method used by the 'mkdb' when creating the CMVC database. NOTE: Warning: before you follow the steps below, make sure that you have a backup of your database and of your CMVC family. If you make a mistake in the SQL statements, you may corrupt the database, and you will need to restore the latest backup. 1. Logon as the CMVC family administrator. 2. Connect to the database, such as: db2 connect to 3. Go into interative SQL; in DB2 (command line processor) type: db2 Administration of users 27 4. Find out the internal userid for the CMVC user whose address needs to be modified (example is shown below) db2 => select id,name,address from Users where login='doe' *** put the user name here A sample output is shown below; you need to validate the name and address fields. ID NAME ADDRESS ------- ----------------------- ----------------------------- 10 John Doe short@carvm3 Note that the current example complies with the limit of 15 characters in the first field of the address (before the @, "at" sign). 5. Issue the following modify command (one single line), where the id field is the id found in step 4 (first field; in the example is 10): update Users set address='12345678901234567890@carvm3' where id=10 ******************** ** place here your value user id You can specify a value that has more than 15 characters in the first field (before the @ "at" sign); in the example there are 16 characters. 6. Commit the transaction (otherwise the value will not be seen by CMVC), by doing: commit work 7. Repeat step 4, and verify that the data is correct: db2 => select id,name,address from Users where login='doe' *** ID NAME ADDRESS ------- ----------------------- ---------------------------- 10 John Doe 12345678901234567890@carvm3 Note that the new value has more than 15 characters in the first field of the address. 8. Terminate the DB session: terminate 28 CMVC FAQ: end user tasks 5.2 ERROR 0010-655 WHEN TRYING TO DELETE A USERID QUESTION: I am trying to delete some userids and I am getting the message: 0010-655 You cannot delete user xxx. This user currently has access. You must delete all access for this user before this user can be deleted. ANSWER: The problem is that the user is a member of one or more authority access groups, and you have to first delete the user from these groups: 1. Using the GUI, from the Authority Access window, use the Open List or Filter dialog to find out all the access groups that the desired userid is a member of. 2. Using the GUI, from the list of items returned by the pre- vious step, highlight the items and invoke the delete action. 3. Then you may try to delete the user again. 5.3 BROADCASTING A MESSAGE TO ALL ACTIVE CMVC USERS QUESTION: Is there an easy way to send a message to all active CMVC clients? It could be necessary in case of an unplanned shutdown or to announce that a general problem has been solved. ANSWER: You may want to use the sample /usr/lpp/cmvc/samples/sendMailTo. Administration of users 29 30 CMVC FAQ: end user tasks 6.0 AUTHORITY ACCESS 6.1 COMPONENT OWNER CANNOT GIVE OBVIOUS AUTHORITY TO OTHER USERS QUESTION: Component owner cannot give obvious authority to other users ANSWER: In CMVC 2.3.0.0 we updated the access authority groups to fill a gap. The componentlead is now a superset of developer+, and the releaselead is a superset of builder. Originally, the shipped authority groups had some holes in the authorities which cause confusion, such as the fact that a devel- oper+ has more FixYZ actions than the componentlead, which causes an error when a component owner tries to give authority of devel- oper+ to a new user (the error says that the componentlead cannot give an authority that the component lead does not have, such as the FixYZ. To correct this problem the following actions were added and are applied automatically in new families, but which need to be added manually into existing families. 1. Add to componentlead the following actions in authority.ld: DefectModify FixActive FixComplete FixDelete 2. Add to the releaselead the following actions in authority.ld: LevelAssign LevelCheck LevelCommit LevelComplete LevelCreate LevelDelete LevelModify MemberCreate MemberDelete SizeCreate Authority access 31 3. Stop the cmvc daemons and run chauth to reload the contents of the authority.ld file into the appropriate table in the database. 6.2 CANNOT LOOK AT THE CONTENTS OF A FILE WITH GENERAL AUTHORITY QUESTION: I am trying to view contents of a file under general authority. I am getting an error: 0010-183 You are not authorized to perform action FileExtract on the specified file. 0010-184 You are not authorized to extract a copy of file x (x = file name) associated with release y (y = release name) ANSWER: In the default access authority groups shipped by IBM, the FileExtract action, which is the one that you need to look at the contents of the file is not part of the general authority group. However, the FileView action is part of the general authority group and this action will give you the meta-data that CMVC has about that file, such as version number, date last updated, etc). You have some alternatives: o Use an access authority group that has the FileExtract action, such as "developer". This is the recommended solution. o Add a new access authority group, such as "extractor", that will have this FileExtract action. Then, you can add this access group to those users who need to view the contents of files, even if their authority is general. CMVC handles the union of all the access groups for a user for a given component. o You could add the FileExtract to the "general" access group. The drawback is that you may dilute quite a lot the granularity of the access by components; that is, you may open your CMVC family too much for everybody. 32 CMVC FAQ: end user tasks 6.3 HOW TO SPECIFY A READ-ONLY ACCESS TO FILES IN A COMPONENT STRUCTURE QUESTION: Has anyone created an authority group which allows a user read- only access to files in a component structure? ANSWER: All the authority actions from the authority groups that a user belongs are combined to get the final list of the authority actions that are valid for that user. This means that a user could have very few authority actions in the root component (such as general) and then more authority actions in children components. A corollary of the above is that you could define a new authority group such as "viewer" which would have ONLY few authority actions, such as "FileView" (to view the details) and "FileExtract" (to view the contents. Then you could add thiis authority group to any use and this will allow the user to ONLY view files. Of course, if the user has more FileXXX authority actions, then the user could create/modify files. The nice thing about this approach is that you do NOT need to modify the existing authority groups. Another possibility is add the desired action to the "general" authority group, and ensure that all users belong to this group. 6.4 WHAT IS THE ROLE OF THE CMVC USER ID "INHERITEDACCESS"? QUESTION: The "InheritedAccess" userID is created automatically when a new CMVC family is created. What is the role for this userID? Could I delete it? ANSWER: Please, do not delete nor change the names of the following CRIT- ICAL objects in CMVC, which are automatically created during the mkdb (the creation of the CMVC family database): Component: root User: InheritedAccess The "root" component is the top component for all active compo- nents. Authority access 33 The "InheritedAccess" user id is the visible aspect of the imple- mentation in CMVC Version 2 of the function to restrict the access in children components. NOTE: Without these objects, the CMVC family will not work prop- erly. 6.5 HOW DO I KNOW IF THE AUTHORITY HAS BEEN RESTRICTED IN A COMPONENT? QUESTION: How do I know if the authority has been restricted in a compo- nent? ANSWER: Use Report -view accessView to view access for a component or user. The TYPE column indicates the type of access (granted or ____ restricted). The userLogin INHERITEDACCESS indicates that the authority group _______________ is restricted for all users inheriting this access. Example output from Report -view accessView compName userLogin userName userArea authorityName type -------- --------------- --------- -------- ------------- ---------- demotest jan Jan Eaton Testing componentlead granted demotest dave Dave Iyers Develmt developer+ granted demotest pat Pat Anders Mgmt manager granted demotest pat Pat Anders Mgmt projectlead restricted demotest InteritedAccess projectlead restricted 6.6 EXAMPLE OF INHERITED ACCESS IN A COMPONENT HIERARCHY QUESTION: Example of inherited access in a component hierarchy ANSWER: An example of inherited access in a component hierarchy is shown below: In the above diagram, pat is the project leader for objects managed by the code component and jan is the project leader for 34 CMVC FAQ: end user tasks +------+ | root | +------+ / \ / \ +------+ +------+ pat : | code | | docs | jan : projectlead projectlead +------+ +------+ (granted) (granted) \ / \ / +----------+ | demotest | jan : componentlead (granted) +----------+ dave : developer+ (granted) pat : manager (granted) pat : projectlead (restricted) InheritedAccess : projectlead (restricted) Figure 1. Example of inherited access objects managed by the docs component. The component demotest is a child of both the code and the docs component. Any access authority configured for these components will be inherited by the demotest component unless it is restricted. If we just wanted to restrict pat from inheriting projectlead authority at the demotest component, then we could do so by spe- cifically restricting pat to the projectlead authority. If we wanted to restrict jan from inheriting projectlead authority, we could also do so in the same manner. Eventually this becomes a cumbersome process and we may want to establish that all users inheriting the projectlead authority are restricted at demotest. 6.7 CAN THE BASE AUTHORITIES BE RESTRICTED? QUESTION: We want to restrict the base authority of specific users against a specific component. For example, we do not want certain users to open a defect against certain components (the DefectOpen is a base authority). ANSWER: Authority access 35 The base authorities cannot be restricted. The Chapter 4 of the CMVC Users Reference say the following about the actions that have base authority: "... a base authority that can be performed by all users in the family" 6.8 ADDITIONAL DETAILS ON RESTRICTING AUTHORITY ACCESS QUESTION: Additional details on restricting authority access ANSWER: The component owner, superuser or user with ACCESSRESTRICT ______________ authority can restrict access for users at a component. Restricted authority is NOT inherited by child components. ___ Restricted authority does not affect implicit and superuser authority. User whose access is restricted is notified. Subscribers to ACCESSRESTRICT are notified. When -inherited is used, only sub- ______________ scribers are notified. When a family is created, a special user "InheritedAccess" is added to handle the restriction of authority access. The id for this user is 0 in the Users table and must remain as 0 for the function to work correctly. Each user on the access list of a component can only have ONE entry PER authority group. Therefore, if the user has the authority group 'developer' listed as a granted authority type for a component, the server will prevent them from adding the authority group 'developer' as a restricted authority type for this user. This current authority group would have to be deleted and then the authority group can be restricted for the user. If a user has multiple authority groups defined for a component where some are granted and others are restricted, then the user's access authority for that component will be the sum of all authority groups and the restricted actions will take precedence over the granted actions. 36 CMVC FAQ: end user tasks RW ACCESS ONLY TO CREATOR?' 6.9 CAN I SPECIFY FOR FILES: RO ACCESS TO ALL QUESTION: We have files in CMVC that all our group needs to read, but that should only be changeable by the creator. Can CMVC do this? ANSWER: CMVC does not have access restrictions at the File level, only at the Component level. Thus, you may want to expand you component hierarchy and dis- tribute your files accordingly. For example if all files for the GUI can only by modified by Sue, then move all those files into a new component and name Sue as the owner of that component (or at least, you give Sue the authority for FileCreate and FileModify, such as developer+). Remember that the access lists are inherited from a parent compo- nent to a children component, and that the access lists are merged and the total access is the union of the individual access lists. Authority access 37 38 CMVC FAQ: end user tasks 7.0 SPECIAL REPORTS 7.1 HINT WHEN USING % IN QUERIES IN REXX FILES QUESTION: I am having problems with my REXX files in which the % wildcard for SQL statements is not properly replaced. ANSWER: The % character in REXX or in the OS/2 and DOS batch languages is used to denote an environment variable, such as %PATH%. However, if you want to use the % character for SQL queries, then you need to specify it double, as: %% 7.2 HOW TO LIST ALL FILES CHECKED IN BETWEEN 2 DATES? QUESTION: I would like to have a report that lists all the files checked in between two dates even if they are changed after this period. ANSWER: You could just use the versions table in a subquery: Report -view FileView -where "sourceid in ( select sourceid \ from Versions where changeDate between \ '95/01/01' and '95/02/01')" Also, you may want to play with variations of this query for per- formance reasons, for example: Report -view FileView -where "releaseName = 'myrelease' and \ exists ( select sourceid \ from Versions where changeDate between \ '95/01/01' and '95/02/01' and \ sourceid = FileView.sourceid)" Special reports 39 7.3 HOW TO GET A LIST OF ALL COMPONENTS THAT HAVE FILES IN A GIVEN RELEASE? QUESTION: How to get a list of all components that have files in a given release? ANSWER: One possible query is shown below: Report -view compView -where "name in (select compName \ from FileView where releaseName = 'alpha' and \ dropDate is null)" 7.4 TO GET NUMERIC SORTING, USE VERSIONID INSTEAD OF VERSIONSID QUESTION: The order of the items using versionSID seems to be incorrect in the following report: Report -raw -view changeView -where "releaseName in ('relname') \ and pathName in ('pathname') order by versionSID" The order is: 1.1 1.10 1.11 1.2 ... 1.9 The expected order was 1.1 through 1.9, followed by 1.10 through 1.11. ANSWER: The versionSID (SID field in the versions table) is a variable character field so the Report is behaving correctly. Instead, try ordering by versionid, because this field is numeric (it is generated from the Sequence table), it should provide you with the ordering that you were expecting. 40 CMVC FAQ: end user tasks 7.5 WHERE DO THE NUMBERS FOR DEFECTS AND FEATURES COME FROM? There are three "sequences" used in CMVC, used to determine what "ID" numbers are assigned to any entry in a table that must be uniquely identified. The "numbers" assigned as names for defects and features are the most obvious. Each of these sequences is stored as a separate row in the family's SEQUENCE table. Once a number is used from one of these rows, the value is incremented. Here are the names of each row and what they are used for: DEFECTS The default name for any defect or feature. Since these numbers are very visible, this is the only use of this number. One minor side effect of the ID for a defect/feature also being the default name is that if you change the name to something like "Defect1413" instead of 1413, that number is still used up. As a result, the next defect will have a default name of 1414. SOURCEID As explained previously (and in much more detail in the the TR "Fix SCCS..."), the sourceId points to where a file is stored in an SCCS archive in the VC tree. This number is incremented each time a new file is created. The limit of six digits in a numeric field for some databases (4 for path plus 2 for SCCS archive filename) is the reason CMVC only supports 1,000,000 files. In other words, when sourceID reaches 999999, then the last archive vc/9/9/9/9/s.99 is created. ??? All other records in database tables that have a unique identifying key (id), use this number. Because these keys must be unique, we strongly warn users that creating or deleting any record that con- tains a column named "id" risks corrupting the entire family. Records in tables that have columns named like releaseId point to these unique records. Futher, these keys must be unique in order for all of the database views that are used by the GUI and Report command to display the correct values. 7.6 WHY DOES "FIELD <> 'VALUE'" NOT INCLUDE NULL? QUESTION: Why does "field <> 'value'" not include null? I queried the defects in my CMVC family for all the defects that do not have a certain value in the Release field; let's say that Special reports 41 I got 100 records. Then I queried the defects that have a certain value and let's say that I got 50 records. However, I found out that there are really 175 defects in my CMVC family and the above actions count for only 150 of them. What happen to the missing 25 records? ANSWER: A null value is a value that forms a 3rd category when the equal/no-equal operator is used. o Values that are equal. In the example above, there 50 records of this kind. o Values that are not equal. In the example above, there are 100 records of this kind. o Values that do not exist, that is, that are null. In the example above, there are 25 records of this kind. Therefore, if you use the <> or the = operators, the resulting query will not include the values that are null. 7.7 SORTING DEFECT/FEATURE NAMES QUESTION: If you do Report -view DefectView -where "order by name", the output would look like the following: 1 10 100 ... 2 20 200 ... Instead of the expected result: 1 2 10 20 100 200 42 CMVC FAQ: end user tasks ANSWER: This is because the defect name is now an alphanumeric field and it is left justified (it was a numeric field in CMVC V1). This was added to allow you to change the name of a defect. To get the proper order of the defect names, use "order by addDate, name". 7.8 USE OF 1=1 AS ARGUMENT TO QUERY FOR ALL INSTANCES OF AN OBJECT QUESTION: Use of 1=1 as argument to query for all instances of an object ANSWER: o You can use the argument "1=1" to query for all objects of the same kind. For example, to query for all users: - You can use the line command: Report -raw -view Users -where "1=1" - You can enter "1=1" (without the double quotes) in the entry field for the query in the Open List dialog (UNIX) or Filter dialog (OS/2). o Another way is to use the following argument: Report -raw -view Users -where "login like ('%')" +--- ANGEL, WHY NOTE "LIKE '%'"? ---------------------------+ | | +-----------------------------------------------------------+ 7.9 HOW TO SPECIFY DATES IN A QUERY? QUESTION: How to specify dates in a query? ANSWER: Special reports 43 CMVC uses the format YY/MM/DD for the dates. Please notice that the year has only 2 digits. In TeamConnection we have fixed this potential problem by using 4 digits. If you want to query all the defects that were opened since the beginning of April, 1996, you can do the following from the GUI: 1. Open the "Open List" or "Filter" dialog. 2. Locate the field that has dates, such as "Add Date". 3. Select the proper operand. In this example is greater-than ">" 4. Enter the date, such as April 1, 1996: 96/04/01 5. Apply or execute the query. A copy of the complete command that used this query is stored at the end of the CMVC.LOG file. See the GUI settings for the proper name and location for this file. 6. In this case, the query from the Open List for Defects will be: addDate > '96/04/01' Since the date also includes the time stamp in the string, you can also query using like this: addDate like '96/04/01%' 7. Then, the corresponding command at the bottom of the log will be: Report -raw -view DefectView -where "addDate > '96/04/01'" 7.10 HOW DO I USE A REPORT COMMAND IN A SHELL SCRIPT? The report formats you generally use are ill-suited to queries. The Report command provides a "-raw" option for most queries. This separates each value with a pipe (|) symbol. This makes for much easier parsing. A shell script can use "awk" or "cut" to easily extract specific columns from a query. For example, to extract the second column from a report you can do the following: Report ... -raw | cut -d'|' -f2 +--- LEE, CHECK ABOVE SYNTAX -----------------------------------+ | | +---------------------------------------------------------------+ 44 CMVC FAQ: end user tasks 8.0 NOTIFICATION 8.1 WHO GETS NOTIFIED WHEN A CMVC ACTION OCCURS? QUESTION: Who gets notified when a CMVC action occurs? ANSWER: When a CMVC user performs an action, all of the users are noti- fied according to the table in the Notification chapter in the CMVC User Reference. There is one exception, the user who actually performs the action is NOT notified because that user did the action and thus, CMVC is not going to give the user an additional notification that the user did it. Also, if there are several CMVC users with the same mail address, then only one of these users will get notified. Thus, if you have more that one CMVC user id with the same mail address and some of these CMVC user ids are involved in the notification, you will not get additional notifications for each of them. 8.2 HOW TO REMOVE SPECIFIC NOTIFICATION MESSAGES FROM CMVC? QUESTION: A user in our CMVC family does not want to receive CMVC notifica- tion messages whenever there are updates in the family for which the user is to be notified. Is there something we should do? ANSWER: There is no middle ground with the notifications from CMVC, that is, you cannot customize to receive certain messages but not other messages. Some workarounds are shown below: o You cannot just remove the address from the user ID so that the user does not longer receives these messages, because the address field is a required one. However, you could change Notification 45 the address to an email account that does not exist or that is created just for this purpose, such as nobody@hostName o You could create a "dummy" userid in your system that can be used as the recipient of any CMVC messages that other users do not want to receive. Of course, the real CMVC users will not be able to get any messages from CMVC at all. In a sense, this "dummy" user id is the equivalent to having a null device such as /dev/null. 46 CMVC FAQ: end user tasks 9.0 OTHER IDEAS history of CMVC (pre-orbit, orbit, toronto, rtp, EZ???GUI, web client to issue commands, CMVC95, influence of biggest families, TeamC) Interaction between our customers like compuserve Suggest superusers having 2 CMVC userid's (user and su_user). I know I documented it somewhere, but I think it is needed again. Austin's telnet tool for administering user accounts 9.1 WARNING AGAINST DEVELOPER+: It is natural for developes to want as much authority as the family administrator dares to give. While developer+ seems like a reasonable authority to give, it leads to a dangerous behavior: 1. Developer one has file a.c checked out 2. Developer two needs to change the same file and doesn't want to wait for developer one 3. Developer two extracts file a.c and begins making changes 4. ... 9.2 A SECOND ACCOUNT FOR NOTIFICATIONS Suggest creating a second account other than your primary mail account just for getting CMVC notifications. This is partic- ularly useful if you are a componentlead or releaselead. Other ideas 47 48 CMVC FAQ: end user tasks APPENDIX A. BIBLIOGRAPHY For more information on how to use CMVC, you can consult the fol- lowing manuals and publications: SC09-1596-01 IBM CMVC Client Installation and Configuration SC09-1597-01 IBM CMVC User's Reference SC09-1631-02 IBM CMVC Server Administration and Installation SC09-1633-00 IBM CMVC Concepts SC09-1635-01 IBM CMVC Commands Reference The following Redbooks offer practical advice on CMVC: GG24-4178-00 Did you say CMVC? GG24-4345 CMVC: Customer's Perspective The following technical reports describe in detail useful hints on using CMVC: 29.2130 Diagnosing and solving Release -extract problems with CMVC 29.2169 How to use CMVC with National Language Support (NLS) and Double-Byte Character Sets (DBCS) 29.2180 How to do routine tasks in the OEM Platforms for CMVC 29.2183 Using CMVC for Products with Multiple National Language Versions (NLVs) 29.2232 How to do migration tasks with CMVC 29.2244 How to build and package the CMVC client for Windows 3.1 29.2245 How to build and package the CMVC client for OS/2 29.2253 Comparison between CMVC 2.3 and TeamConnection 2 29.2254 Migrating from CMVC 2.3 to TeamConnection 2 A.1 HOW TO GET ELECTRONIC COPIES OF MANUALS AND TRS Many of the manuals and technical reports mentioned in this docu- ment can be downloaded as follows: o From the IBM intranet (only for IBM employees). o From the Internet (open to everyone). A.1.1 IBM Intranet ___________________ A.1.1.1 Web Home Page You can access the CMVC Service/Development Home Page at: Appendix A. Bibliography 49 http://keithp.raleigh.ibm.com/&tilde.cmvcsupt From the index at the top of the page, select: o Technical Reports and related tools o Copies of ALL the archived versions for the forums CMVC and CMVC6000 o Documentation in PostScript files o Documentation in ASCII text files A.1.1.2 FTP You can download the code from our internal FTP site, by doing: 1. ftp keithp.raleigh.ibm.com 2. login as 'anonymous' and for password give your email address. 3. cd pub/cmvc/doc 4. binary 5. get fileName 6. quit A.1.2 Internet _______________ A.1.2.1 Web Home Page Not available. A.1.2.2 FTP You can download the code from our external FTP site, by doing: 1. ftp ftp.software.ibm.com 2. login as 'anonymous' and for password give your email address. 3. cd ps/products/cmvc/doc 50 CMVC FAQ: end user tasks 4. binary 5. get fileName 6. quit Appendix A. Bibliography 51 52 CMVC FAQ: end user tasks APPENDIX B. COPYRIGHTS, TRADEMARKS AND SERVICE MARKS The following terms used in this technical report, are trademarks or service marks of the indicated companies: +---------------------+-------------------------------------------+ | TRADEMARK, | COMPANY | | REGISTERED | | | TRADEMARK OR | | | SERVICE MARK | | +---------------------+-------------------------------------------+ | IBM | IBM Corporation | | AIX | | | OS/2 | | | PC-DOS | | | CMVC | | | DB2/6000, DB2 | | | TeamConnection | | +---------------------+-------------------------------------------+ | PostScript | Adobe Systems Incorporated | +---------------------+-------------------------------------------+ | HP-UX | Hewlett-Packard Company | +---------------------+-------------------------------------------+ | Microsoft | Microsoft Corporation | | Windows | | | MS-DOS | | +---------------------+-------------------------------------------+ | UNIX | X/Open Co., Ltd. | +---------------------+-------------------------------------------+ END OF DOCUMENT Appendix B. Copyrights, Trademarks and Service marks 53