xmldiffmrg

Parses, compares, and merges XML file versions

Applicability

Product

Command type

VersionVault

command

Platform

Windows

Synopsis

  • Start the GUI without specifying an operation:
    xmldiffmrg
  • Parse one file:
    xmldiffmrg [ –xview ] [ –visible_blank ] [ pname1 ]
  • Compare files:
    xmldiffmrg –xcompare [ –blank_ignore –visible_blank ]
    [ –hstack |–vstack ] [ pname1 ... pname7 ]
  • Merge files:
    xmldiffmrg –xmerge [ –out pname | –to to-version ] [ –query | –abort
    | –qall ] [ –encoding { utf-16 | utf-8 | iso-8859-1 | ascii } ]

    [ –hstack |–vstack ] [ –visible_blank ] [ –base base_contributor ]

    [ pname1 ... pname7 ]

Description

The xmldiffmrg command starts a GUI in which you compare and merge versions of XML elements. xmldiffmrg parses XML, which enables you to do the following:

  • Compare and merge XML structure and content without understanding XML markup.
  • Expand, collapse, browse, and filter the data tree resulting from a comparison or merge operation.

For general information about comparing and merging element versions, see Developing Software.

Restrictions

Identities

For all operations except creating a merge arrow, no special identity is required. To create a merge arrow, you must have one of the following identities:

  • Element owner
  • Element group member
  • VOB owner
  • Member of the VersionVault administrators group (VersionVault)

Locks

An error occurs if one or more of these objects are locked: VOB, element type, element, branch type, branch, hyperlink type.

Mastership

(Replicated VOBs only) No mastership restrictions.

Options and arguments

Specifying the operation to be performed

Default
For a single pname argument, –xview; for multiple contributors, none.
–xview
Parses a single contributor.
–xcompare
Compares contributors.
–xmerge
Merges contributors.

Treatment of white space

Default
The default behavior differs according to whether the nodes contain white space only, or both white space and other characters, as follows:
  • In white-space-only nodes, white space is ignored unless there's a difference in the nodes being compared or merged.
  • In nodes that contain white space and other characters, a white-space character is treated the same as any other character.
–visible_blank
White-space characters are made visible by alternate glyphs representing the white space.
–blank_ignore
Ignores white-space characters in white-space-only nodes. This option does not affect the comparison of nodes that contain both white space and other characters.

Contributor pane stacking

Default
–hstack.
–hstack
Each contributor being compared or merged is displayed in a separate contributor pane that is stacked horizontally (side by side), with the base contributor on the left.
–vstack
Specifies contributor panes are to be stacked vertically, with the base contributor on top.

Destination of the merge output

Default
None; the GUI prompts for a destination if none is specified in the command line.
–out pname
Specifies the pathname to which the merge output is written after all conflicts are resolved. Use this option to perform a merge that does not overwrite any of its contributors.
–to to-version
Specifies the file that is to be the merge target. to-version is both a contributor to the merge and the destination of the merged output.

Controlling user interaction

Default
Performs merges as automatically as possible, prompting you to make a choice only when two or more contributors differ from the base contributor.
–query
Changes in the to-version are accepted unless a conflict exists. Turns off automatic merging for nontrivial merges and prompts you to proceed with every change in the other contributors.
–abort
Cancels the command instead of engaging in a user interaction; a merge takes place only if it is completely automatic. If two or more contributors differ from the base contributor, a warning is issued and the command is canceled. This command is useful in shell scripts that batch many merges (for example, all file elements in a directory) into a single procedure.
–qall
Turns off automated merging. You are prompted to make a choice every time a contributor differs from the base contributor. This option is turned on when xmldiffmrg cannot determine a common ancestor (or other base contributor), and you do not use –base.

Character encoding

Default
None.
–encoding { utf-16 | utf-8 | iso-8859-1 | ascii}
If an output file is generated, use the specified (case-insensitive) encoding type. The generated output contains an XML Declaration statement containing the specified encoding attribute if required. If a character code cannot be represented in the specified encoding, it is written out as an XML character reference in the form

&xnnnn;

where nnnn is a hexadecimal character index.

Specifying the base contributor

Default
pname1.
–base base_contributor
Specifies the base contributor; typically, but not always, this is the closest common ancestor of the contributors.

Specifying the contributors

Default
None; if no contributor is specified on the command line, a dialog box prompts for contributors.
pname1 ... pname7
Specifies the contributors. A maximum of seven contributors may be specified, inclusive of a contributor specified by –base.