On 12/25/2013 03:34 PM, Edward Diener wrote:
On 12/25/2013 7:26 AM, Bjørn Roald wrote:
In fact the first merge into master from develop after the SVN to Git conversion is important to get right. If not things become confusing as Git has no sensible common ancestor for the two branches, and what merge does may surprise you.
Then this should be very carefully documented somewhere on the Wiki pages where all Boost developers can easily find it.
agreed, I think it is. See below.
I find it mysterious that one cannot do for one's own submodule:
git checkout master git merge develop git push
so evidently there is much more to this as far as Boost and git is concerned.
Not anything other than the fact the master and develop branch as they come out of the conversion from SVN are not really set up as normal git branches would. They are just two separate branches running parallel from the infancy of the library with no interconnections in the form of recorded merges forming some common parent. Such a common parent is normally used by git merge to end the search in history for change sets that may apply to the merge. So Git may need a bit of care and help from you the first time you merge after the conversion to find a sensible place to make such a common parent. Then that is done git will likely do as you expect. Just doing the canonical merge you describe above as the first time merge after conversion will likely work if the head of the develop branch and the head of the master branches are in sync. If not I recommend to look in the history of develop for a better commit to do the first merge from. See link below.
Hopefully what needs to be done will be carefully explained somewhere for all of us git non-experts.
There is a section called "First post-svn conversion merge to master" in: https://svn.boost.org/trac/boost/wiki/StartModMaint#Gettingreadytoworkonalib... Is that similar to what you have in mind? -- Bjørn