Conflict Management

Responding to Source Merge Conflicts

7-4-versioncontrol-merge

  • When various conflicts occur in Link, the message “Resolve Merge Conflicts” is displayed. Conflicts can be identified through ">>>" and "<<<" within the cell name or code.
  • "<<<" is added before the existing cell name or code, and ">>>" is added before the existing cell name or code. This way, collisions can be checked on both sides of the cell and code.

Link Git Merge Driver

Github Branch Merge Management Overview

  • In version control, based on one file, there are three states: base, current, and incoming.
    • base : The base commit point. Local and remote starts from the same base
    • current : Current local state with one or more commits from the base
    • incoming : Current remote state with one or more commits from the base
  • When viewed from a single cell basis, the types of diff from the base are divided into 4 types: Added, Deleted, Changed, and Unchanged.
  • When pulling incoming from current, a collision can occur when comparing the difference between base and current (diff1) and the difference between base and incoming (diff2).
  • Base → Current (Diff 1)Base → Incoming (Diff 2)Merged
    DeletedDeletedN/A (stay deleted)
    ChangedConflict
    UnchangedN/A (stay deleted)
    ChangedDeletedConflict
    ChangedConflict
    UnchangedN/A (stay deleted)
    UnchangedDeletedDeleted
    ChangedChanged
    UnchangedN/A (stay deleted)

Link Git Merge Driver

Merge Driver is a feature which allows you to resolve merge conflicts when there is a merge conflict between notebooks with Link pipelines. It adds merge information for ipynb format to .gitattributes and .git/config files when you change a repository you are working on Link Git.

*.ipynb merge=mrx_link_git_merger

📘

Merge Driver does not affect files other than notebooks.

📘

You can see the following dialog when there is a *.ipynb merge information in your .gitattributes file already. Merge Driver can be activated after deleting the *.ipynb merge information and opening the repository.

In order to delete merge information from *.ipynb properties, follow the guideline provided below.

  1. In the root folder of the project, open the .gitattributes file.
  2. Delete the merge information in your .ipynb_ attribute.
    *.ipynb merge=example
  3. Save and close the .gitattributes file.