SuperC Merge

SuperC can merge two files together to produce a third, combined version. The merged file contains control information to allow the user how to ensure that the final version is a correct combination of the two input versions.

Two sample files are shown here, with a third which is the result of the SuperC merge process. A line by line guide is then given as to what the control information means.

Merge file (old)
    LINE 1
    LINE 2
    LINE 3 1
    LINE 4 IS DELETED ON THE NEW FILE
    LINE 5
    LINE 6
    LINE 7
    LINE 8
    LINE 9
    LINE 10
    LINE 11 WHICH IS DELETED ON THE NEW FILE
    LINE 12 NOW THE LINE NUMBERS MATCH AGAIN
    LINE 13
    LINE 14
    LINE 15
Merge file (new)
    LINE 1
    LINE  2
    LINE 3
    LINE 5
    LINE 6 IS CHANGED ON THE NEW FILE
    LINE 6A IS INSERTED AFTER A CHANGED LINE
    LINE 7
    LINE 7A WHICH IS INSERTED ON THE NEW FILE
    LINE 8
    LINE 9 IS NOW ON LINE 10 BUT IDENTIFIED AS A CHANGE
    LINE 10
    LINE 12 NOW THE LINE NUMBERS MATCH AGAIN
    LINE 13
    LINE 14
Merging these two files will create an output file like this, with SuperC control statements inserted:
Merged result
*HDR1  USER01.USER.CLISTB(COM2)
*HDR2  USER01.USER.CLISTB(COM1)
*M-    MAT#=  1      N-REF#=000001 O-REF#=000001
    LINE 1
*I-RF  INS#=  1      N-REF#=000002 O-REF#=000002
    LINE  2
*D-RF  DEL#=  1      N-REF#=000002 O-REF#=000002
    LINE 2
*M-    MAT#=  1      N-REF#=000003 O-REF#=000003
    LINE 3
*D-    DEL#=  1      N-REF#=000003 O-REF#=000004
    LINE 4 IS DELETED ON THE NEW FILE
*M-    MAT#=  1      N-REF#=000004 O-REF#=000005
    LINE 5
*I-RP  INS#=  2      N-REF#=000005 O-REF#=000006
    LINE 6 IS CHANGED ON THE NEW FILE
    LINE 6A IS INSERTED AFTER A CHANGED LINE
*D-RP  DEL#=  1      N-REF#=000005 O-REF#=000006
    LINE 6
*M-    MAT#=  1      N-REF#=000007 O-REF#=000007
    LINE 7
*I-    INS#=  1      N-REF#=000008 O-REF#=000007
    LINE 7A WHICH IS INSERTED ON THE NEW FILE
*M-    MAT#=  1      N-REF#=000009 O-REF#=000008
    LINE 8
*I-RP  INS#=  1      N-REF#=000010 O-REF#=000009
    LINE 9 IS NOW ON LINE 10 BUT IDENTIFIED AS A CHANGE
*D-RP  DEL#=  1      N-REF#=000010 O-REF#=000009
    LINE 9
*M-    MAT#=  1      N-REF#=000011 O-REF#=000010
    LINE 10
*D-    DEL#=  1      N-REF#=000011 O-REF#=000011
    LINE 11 WHICH IS DELETED ON THE NEW FILE
*M-    MAT#=  3      N-REF#=000012 O-REF#=000012
    LINE 12 NOW THE LINE NUMBERS MATCH AGAIN
    LINE 13
    LINE 14
*D-    DEL#=  1      N-REF#=000014 O-REF#=000015
    LINE 15

SuperC combines the files where no differences are found. Where differences are found, it puts lines from both files into the output, with control lines to say what it has done. You then delete the control lines plus those lines you do not want - i.e. from either the old or new file. The control lines start in column 1 with an asterisk, followed by the control information. Note that the legend
       *****SUPERC CHANGE HEADER*****
normally appears on the right on each control line. These have been edited out of the illustration to simplify it. The possible SuperC control codes are:.
     *HDR1
     *HDR2
     *D-
     *D-RF
     *D-RP
     *I-
     *I-RF
     *I-RP
     *M-

Explanation of SuperC merge file

SuperC identifies reformatted, changed, deleted, inserted and matched lines: the merged file contains Each control line from the merged file is shown below, with a recommended action where this is appropriate.
      SuperC does not base its comparsions on line numbers, but on matching the data. It is not confused by line deletions or insertions, but can identify them even when line numbers have changed. This means that you will not get 'cascading', where one small difference produces many mismatch messages. You will see this in the explanation below.
      The HDR control words identify the two datasets that were merged
 *HDR1  USER01.USER.CLISTB(COM2)
 *HDR2  USER01.USER.CLISTB(COM1)
*HDR1 identifies the NEW version, *HDR2 identifies the OLD version.

Recommended: delete both lines

You may want to delay doing the deletion until after completing the actions outlined below, so that you can remind yourself which version is the New and which the Old.

*M    MAT#=  1      N-REF#=000001 O-REF#=000001
shows data lines that are the same on both files *M shows that matched lines have been found. MAT# shows how many matched lines there are. N-REF# and O-REF# are the line numbers in the new and old files, respectively, where the match was found. The data lines follow the *M line.

Recommended: delete the *M header line.

*I-RF  INS#=  1      N-REF#=000002 O-REF#=000002
...new file data lines
*D-RF  DEL#=  1      N-REF#=000002 O-REF#=000002
...old file data lines
*I-RF shows that some lines have been reformatted on the new file. INS# is the number of reformatted lines. The new lines follow the *I-RF line. *D-RF is the header for the reformatted lines from the old file. DEL# is the number of reformatted lines. The old lines follow the *D-RF line.

Recommended: Decide which set of reformatted lines you want and delete the others, then delete the SuperC control lines

   *M-    MAT#=  1      N-REF#=000003 O-REF#=000003
*M indicates matched lines, MAT# shows how many. N-REF# and O-REF# are the line numbers in the new and old files. The data lines follow the *M line.

Recommended: delete the *M header line.

*D-    DEL#=  1      N-REF#=000003 O-REF#=000004 ...old file deleted lines
*D shows that lines have been deleted from the old file. DEL# is the number of deleted lines.

Recommended: delete the lines if they are not required in the new file, then delete the control line.

*M-    MAT#=  1      N-REF#=000004 O-REF#=000005
*M indicates matched lines, MAT# shows how many. N-REF# and O-REF# are the line numbers in the new and old files. The data lines follow the *M line.

Recommended: delete the *M header line.

*I-RP  INS#=  2      N-REF#=000005 O-REF#=000006
....lines from the new file
*D-RP  DEL#=  1      N-REF#=000005 O-REF#=000006
....lines from the old file
*I-RP is used where lines are replaced rather than reformatted. It is therefore much more common that *I-RF and *D-RF. INS# is the number of new lines. The new lines follow the *I-RP line. *D-RP is the header for the deleted lines from the old file. DEL# is the number of deleted lines. The old lines follow the *D-RF line.

Recommended: select which set of lines you want, delete the other set and delete the control line

*M-    MAT#=  1      N-REF#=000007 O-REF#=000007
*M indicates matched lines, MAT# shows how many. N-REF# and O-REF# are the line numbers in the new and old files. The data lines follow the *M line.

Recommended: delete the *M header line.

*I-    INS#=  1      N-REF#=000008 O-REF#=000007
*I- shows lines inseted on the new file. INS# is the number of new lines.

Recommended: decide whether you want the lines, delete them if not, then delete the control line.

*M-    MAT#=  1      N-REF#=000009 O-REF#=000008
*M indicates matched lines, MAT# shows how many. N-REF# and O-REF# are the line numbers in the new and old files. The data lines follow the *M line.

Recommended: delete the *M header line.

*I-RP  INS#=  1      N-REF#=000010 O-REF#=000009
*D-RP  DEL#=  1      N-REF#=000010 O-REF#=000009
This illustrates that line numbers need not be the same for a changed line to be identified.
*M-    MAT#=  1      N-REF#=000011 O-REF#=000010
Recommended: as always, to delete the matched lines header
*D-    DEL#=  1      N-REF#=000011 O-REF#=000011

Recommended: decide if the deleted lines are needed or not, delete them as appropriate, then delete the control line.

 *M-    MAT#=  3      N-REF#=000012 O-REF#=000012
Recommended: as always, to delete the matched lines header
*D-    DEL#=  1      N-REF#=000014 O-REF#=000015
Recommended: decide if the deleted lines are needed or not, delete them as appropriate, then delete the control line.

[Home]

Last updated: 21 Jan 2002