I need to begin a branch (beta) based in another branch (alpha), you can see this as a beta version based in an alpha version. This two branches will end merged with trunk, first the alpha branch and then the beta branch.
Option 1: Create alpha branch from trunk and then create beta branch from alpha. Beta will be updated with changesets from alpha periodically because beta must contain all functionality from alpha (points 1 and 2).
/----beta---/(1)---/(2)-----beta-------\
/ / / \
/------------alpha--/------/---\ \
/ \ \
------------trunk---------------------------------------------->
Option 2: Create alpha from trunk and then beta from trunk too. Update beta with the changes of alpha to put both with the same functionality (point 3). After this beta will be updated with changesets from alpha periodically because beta must contain all functionality from alpha (points 4 and 5).
/--/(3)--beta----/(4)--/(5)----beta-----\
/ / / / \
/-------o--/--alpha------/-----/---\ \
/ / \ \
----------------trunk------------------------------------------->
Both branches will be merged back to trunk.
Which is the better option?
Option 1, because it eliminates unnecessary in this case merge from alpha to beta at start and physical path correlate to logical