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.

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.