Skip to content

Merge Kitchens

Most child kitchens are temporary workspaces intended only for development work. When users complete that work, they can merge it into a parent kitchen. Behind the scenes, a kitchen merge is a merge of version control branches.

Both the UI and command line provide a three-pane diff view for better visibility when resolving conflicts and viewing changes.

Tip

DKCloudCommand option: Use the kitchen-merge-preview and kitchen-merge commands in the command line interface.

Considerations

At any point during a merge, click Cancel to end the process without applying changes.

Warning

Important:

  • Merge regularly. The system generates an error if more than 2000 commits must be compared between parent and child kitchens. The system will complete large merges but may not log status updates for users to track.
  • Binary files do not merge. The system cannot preview or merge ZIP files and other binary files. You must upload these files manually to the target kitchen.
  • Empty files do not merge. The merge does not process files that have no content. Empty files must be added to a target kitchen manually.
  • Merge down before merging up. Best practice is to merge changes down from the parent kitchen before merging changes up from the child kitchen to reduce merge conflicts.
  • For merges with more than 300 files, the merge preview will treat any renamed file as a pair of changes: the previous filename removed and the new filename added.
  • Only files identified by the system as conflicted can be resolved (i.e. changed) during a merge

Tips for efficient merging

On the Merge Down and Merge Up pages:

  • Click Show Details to open a quick view with overview information about the merge.
  • All files that differ between the source and target kitchen are shown in a list on the left.
    • Use the filter, Hide File List, Collapse All, and Expand All to adjust the view.
  • Files are stylized as added, modified, removed, or conflicted for better visibility.
  • The 2-pane view provides more width to review lines of code. It displays the target and source kitchens if there are no conflicts or displays the merge preview and source kitchens if there are conflicts.

    Note

    The 2-pane view of the merge pages shows the panes in a different order than the 3-pane view. The 3-pane source > preview > target changes to either preview > source or target > source.

Merge parent kitchen down

A merge down copies the files from the parent kitchen into your working kitchen.

Prerequisites

  • Only users who have been granted access to the target kitchen of the merge can perform this action.
  • A kitchen cannot be merged until all conflicts are resolved.

How to

  1. Click Merge Parent Down to Kitchen associated with your child kitchen.

    The option to merge down appears on the Kitchens page and in the green menu.

  2. Review the information on the Merge Down page.

  3. Select any file from the list to display a diff view showing source and target.
  4. Resolve each conflicted file:
    • Click the right arrows to use all the changes from the source/parent kitchen.
    • Click the left arrows to retain all the content in the target/child kitchen.
    • Optional. Edit code in the Merge Preview pane to make additional modifications or incorporate changes from both source and target kitchens.
    • Click Done in the Merge Preview pane when you're ready to resolve a conflicted file.
    • To revert a resolution, click Undo before clicking Done or Undo Resolve after clicking Done.
  5. When all conflicts are resolved and you've reviewed the files, click Merge Down.
  6. In the Merge Kitchen dialog, click Merge Down.

When the merge completes, select an option in the success dialog. The next step is typically Merge Up.

Visual example in Automation

(Screenshot of a merge down)

Merge child kitchen up

A merge up copies your recipe and variation data, kitchen history log, and optionally, your order run data to the parent kitchen.

Prerequisites

Tip

A merge up is expected to occur after a merge down. If the parent kitchen has updates relative to the child, a message will alert you and provide the option to do a merge down before you proceed.

  • Only users who have been granted access to the target kitchen of the merge can perform this action.
  • Some of the following steps are contextual. For example, if no order runs have occurred in the child kitchen, the option to promote order runs (step 6) will not be included in the user flow.
  • A kitchen cannot be merged until all conflicts are resolved.

How to

  1. Click Merge Kitchen Up to Parent associated with your child kitchen.

    The option to merge down appears on the Kitchens page, in the green menu, and as the next step following a merge down.

  2. Review the information on the Merge Up page.

  3. Select any file from the list to display a diff view showing source and target.
  4. Resolve each conflicted file:
    • Click the right arrows to use all the changes from the source/child kitchen.
    • Click the left arrows to retain all the content in the target/parent kitchen.
    • Optional. Edit code in the Merge Preview pane to make additional modifications or incorporate changes from both source and target kitchens.
    • Click Done in the Merge Preview pane when you're ready to resolve a conflicted file.
    • To revert a resolution, click Undo before clicking Done or Undo Resolve after clicking Done.
  5. When all conflicts are resolved and you've reviewed the files, click Merge Up.
  6. Optional. In the Merge Kitchen dialog, select Promote order runs to parent kitchen.

    Note

    When this is selected, the system copies some (or all) order runs to the parent kitchen. A promoted order run includes testing and timing details.

  7. Click Next.

  8. Optional. If you select Promote order runs to parent kitchen in step 6:

    1. In the Merge Kitchen / Promote Orders dialog, select some or all orders and order runs to copy to the parent kitchen.
    2. Optional. Check Combine started/stopped/resumed order runs. This will take order runs in these partial states from a single order submission in the child kitchen and combine them sequentially as a single order run in the parent kitchen.

      Note

      Order run promotion does not include failed runs.

  9. Click Next.

  10. Click Merge Up.

Visual examples in Automation

You can optionally select order runs to promote to the parent.

(Step in the merge up dialog)

(Step in the merge up dialog)