This wiki describes OSEE branches, conflicts and merge handling. Target audience: developers.

To also help in understanding of a OSEE branches, sample scenario (default Demo database) will be weaved into the text.

Branch

A branch in OSEE is represented by an entry in OSEE_BRANCH table.

image:osee_branch_intro1.png

BRANCH_NAMEBRANCH_TYPEBASELINE_TRANSACTION_IDBRANCH_GUIDASSOCIATED_ART_IDARCHIVEDBRANCH_IDBRANCH_STATEPARENT_BRANCH_IDPARENT_TRANSACTION_ID
System Root Branch41AyH_fDnM2RFEhyybolQA-1011-11
Common24AyH_fDpMERA+zDfML4gA-102223
SAW_Bld_1219AyH_f2sSKy3l07fIvAAA-103113
CIS_Bld_1221AyH_f2sSKy3l07fIvDDD-104113

Adding

Creating a child branch CIS_child_branch from CIS_Bld_1.

image:osee_branch_adding_a_branch.png

OSEE_BRANCH Table:

BRANCH_NAMEBRANCH_TYPEBASELINE_TRANSACTION_IDBRANCH_GUIDASSOCIATED_ART_IDARCHIVEDBRANCH_IDBRANCH_STATEPARENT_BRANCH_IDPARENT_TRANSACTION_ID
System Root Branch41AyH_fDnM2RFEhyybolQA-1011-11
Common24AyH_fDpMERA+zDfML4gA-102223
SAW_Bld_1219AyH_f2sSKy3l07fIvAAA-103113
CIS_Bld_1221AyH_f2sSKy3l07fIvDDD-104113
CIS_child_branch024AAnWwP8Wdn3nt74X1PgA10051422

OSEE_TX_DETAILS Table: (from SELECT * FROM OSEE.OSEE_TX_DETAILS WHERE TRANSACTION_ID = 24;)

AUTHORTIMEOSEE_COMMENTTX_TYPECOMMIT_ART_IDBRANCH_IDTRANSACTION_ID
172012-01-31 13:30:03.865New Branch from CIS_Bld_1 (22)1null524

Merge(s)

Merge branches are considered to be “half” branches, difference being in that they only exist in OSEE_MERGE table, (with backing transaction data in OSEE_TXS and OSEE_TX_DETAILS). In contrast, a typical full branch would contains full, current records of artifacts, relations and other meta data related to it. A merge branch can be thought of a place holder to reference for a conflicted artifact, relation or type at a specific time.

Refer to plugins/org.eclipse.osee.framework.core.datastore/support/SKYNET.VERSIONING.SCHEMA.xml for schema descriptions.

Conflict(s)