Model Merge Report

When DaVinci Configurator finishes loading the ARXML files, it writes a SARIF report for all detected Model Merge Conflicts to Output/Log/ProjectLoad/, and refreshes it on every project load (even when the load aborts). SARIF is an OASIS standard; in this context, DaVinci Configurator acts like a static analysis tool for ARXML files.

Install the VS Code SARIF Viewer plugin. It opens the report and highlights the conflicting lines in the ARXML files directly.

Use the Report

The report contains every Model Merge conflict from the current project load. Each entry provides:

  • Conflict type — the kind of merge problem.

  • Element reference — the AUTOSAR path, definition reference, or value of the affected element.

  • Cause — why the conflict was raised.

  • Locations — the involved ARXML files with their line and column ranges.

  • Chosen value — for a resolved conflict, which value was kept and from which file.

To work through the report, start with the conflict type and cause to understand the problem, then open the listed locations to compare the ARXML fragments. Finally, check the Severity Level to decide whether you must fix the conflict manually or review an automatic resolution.

Severity Level

Each conflict has a severity level that shows how critical it is for project load and whether it needs manual resolution.

Level Tag Description

error

A conflict that prevents a successful project load. It needs automatic or manual resolution.

warning

AUTOMATIC MERGE APPLIED

A non-critical conflict that does not prevent project load but signals a potential issue.

note

IMPLICITLY RESOLVED

An informational message with additional context, for example about an implicitly resolved conflict.

Structure

The report is a JSON file conforming to the SARIF schema. The following shows the outline of the structure:

{
  "version": "2.1.0", (1)
  "runs": [
    {
      "tool": {}, (2)
      "results": [ (3)
        {
          "level": "warning", (4)
          "locations": [
            "physicalLocation": {}, (5)
          ],
          "message": {} (6)
        }
      ]
    }
  ]
}
1 The SARIF schema version
2 Metadata about DaVinci Configurator
3 List of Model Merge Conflicts
4 Severity Level of the conflict
5 List of source files involved in the conflict
6 The message of the conflict

Limitations

The line and column information of a conflicting AUTOSAR element is a best-effort computation and points to the nearest Referrable parent element. For performance reasons, DaVinci Configurator computes it on demand, only for conflicting elements.

The following limitations currently apply:

  1. By default, DaVinci Configurator can compute line numbers and locations only for an AUTOSAR Referrable, based on the short names of elements. If the conflicting element is not a Referrable itself, a parent Referrable is used for localization.

    Parameters and reference values are an exception: DaVinci Configurator localizes them directly using their definition reference (DefRef) and, for multi-instance parameters, their multi-instance ID. If several instances share the same DefRef and multi-instance ID in one file, DaVinci Configurator can no longer tell them apart and falls back to the parent Referrable, like for other element types.

  2. When multiple instances could match a conflict, the localization may report the first matching instance in a file.

When you find multiple instances of the conflicting element in one file, double-check all of them to find the correct one. The same applies to elements with variation points, which higher-level parent elements might define.

To make conflicts easier to interpret, DaVinci Configurator also provides the definition reference, attribute name, or value of the conflicting element.

Localization will improve in future versions. Your feedback is welcome.