Skip to content

Allow merging of files at some path relative to the root #2776

@abraemer

Description

@abraemer

It is conceivable that some parts of the file tree either have information due to previous work (e.g. code that didn't change) or was scanned with a different scanner or similar. In such a case, one needs the option to not just merge to opossum files but also specify a relative location where one should be integrated into the other.
This reflects the relative merge operation from opossum.lib.hs (yet to be implemented in opossum-file: see opossum-tool/opossum-file#55).

They way this could be implemented in OpossumUI is by using a new context menu (aka right-click menu) in the file tree. This context menu allows the user to select the desired merge directly:

Image

Image

Selecting the Menu point (tentatively named "Import as subfolder...") opens up the usual import dialog (restricted to opossum files?) and then performs the merge-relative operation behind the scenes integrate the new information into the existing document.

Things to consider:

  • Is the name of the subfolder always clear? Do we need an option for the user change it? I think currently for all opossum files "in nature", the root folder "/" always has a single child. Thus the new structure is always clear. However I don't think this guaranteed in principle and just caused by the methods of construction (e.g. ScanCode always has a single root directory). If the root has multiple children, do we just put them beneath the selected folder?
  • Related to above: Do we want to allow adding new subfolders to "/"?
  • Should this merge never "create" new directories but rather replace the selected one? This could also resolve the above issue
  • What if the user has unsaved changes? We could probably just show the same popup that we used for Open/Import/Export. See Show save dialog before open/import/merge/export #2775
  • Are there other - perhaps simpler - solutions to this workflow?
    • Option for import: Risks making the import more complicated for a function considered for expert users. Specifying the merge location seems difficult and would require some thinking
    • Standalone menu entry: Menu gets longer and longer. Same issue with specifying the merge location
    • Button somewhere else in the UI? Conceptually the place for file operations is the file tree. Maybe there could be a Toolbar between the Header "All Resources" and the actual tree?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions