title: Update From Parent

Update From Parent:

    flowchart TD
        clickUpdate((User clicks update\nfrom parent))
        checkParentChanges{Has the parent\nbranch changed?}
        branchUpToDate[Branch is\nup to date]:::green
        canNotUpdate[Can not update]:::green
        isBranchCommitted{Is the branch in\nCOMMITTED state?}
        isBranchBeingRebased{Is the branch\ncurrently being rebased?}
        setToRebaseAndCreateBranch[Set branch state to\nREBASELINE_IN_PROGRESS and\ncreate new working branch]
        doesBranchHaveChanges{Does the branch have\nany changes?}
        switchToNewWorkingBranch[Switch to new working branch.\nUpdate new branch name,\nset associated artifact,\nset original branch state to DELETED.]:::blue
        checkMergeConflicts{Are there\nmerge conflicts?}
        commitBranchIntoNewWorking[Commit branch into new working branch,\nset new branch associated artifact,\nset original branch state to REBASELINED.]:::blue
        createMergeBranch[Create merge branch,\nreturn branch data indicating\na merge is needed.]:::blue
        areConflictsResolved{Have all conflicts\nbeen resolved?}
        needsMerge[Retuen branch data indicating\na merge is needed.]:::blue

        clickUpdate-->checkParentChanges
        checkParentChanges-- No -->branchUpToDate
        checkParentChanges-- Yes -->isBranchCommitted
        isBranchCommitted-- Yes -->canNotUpdate
        isBranchCommitted-- No -->isBranchBeingRebased
        isBranchBeingRebased-- Yes -->areConflictsResolved
        isBranchBeingRebased-- No -->setToRebaseAndCreateBranch
        setToRebaseAndCreateBranch-->doesBranchHaveChanges
        doesBranchHaveChanges-- No -->switchToNewWorkingBranch
        doesBranchHaveChanges-- Yes -->checkMergeConflicts
        checkMergeConflicts-- No -->commitBranchIntoNewWorking
        checkMergeConflicts-- Yes -->createMergeBranch
        areConflictsResolved-- Yes -->commitBranchIntoNewWorking
        areConflictsResolved-- No -->needsMerge

        classDef green stroke:#0f0
        classDef blue stroke:#00f

Legend:

    flowchart TD
    id1[Result is\nmessage only]:::green
    id2[Result includes\nimportant data]:::blue

    classDef green stroke:#0f0
    classDef blue stroke:#00f