Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to prevent so many merges (workflow issue)
    primarykey
    data
    text
    <h3>Context:</h3> <ul> <li>7 devs</li> <li>1 product</li> <li>3 branches: <ul> <li>Version 3.6 (stable)</li> <li>Version 3.7 (stable)</li> <li>Master (dev)</li> </ul></li> </ul> <h3>Rules &amp; Policies in place:</h3> <ul> <li>Any fix made in an earlier version must be merged in all future versions.</li> <li>Integration is continuous: if you fix something in 3.6, you must integrate and test in 3.7 and in master before you push.</li> <li>When possible, rebase your work before you commit so that stuff you committed two days ago locally will actually be put back on top. I know this is a matter of preference and has pros and cons, but this is what we like best as a team.</li> </ul> <h3>Our problem:</h3> <p>We have too many <em>useless</em> merge operations to do. Here is a scenario:</p> <p>Normal integration work:</p> <ul> <li>Joe and Bill work on two different fixes that go in 3.6.</li> <li>Joe is done, he pulls (and rebases)</li> <li>Joe tests one last time in his 3.6 branch</li> <li>Joe switches to 3.7 and merges 3.6 - <strong>merge 1</strong></li> <li>Joe tests again, this time in the context of 3.7</li> <li>Joe switches to 3.8 and merges 3.7 - <strong>merge 2</strong></li> <li>Joe tests again, this time in the context of 3.8</li> <li>Joe is ready to push</li> <li>Bill did pretty much the same thing but pushed right after Joe pulled</li> <li>Joe tries to push but the operation fails because it would create a new head</li> </ul> <p>Painful (useless) merges:</p> <ul> <li>Joe pulls, he gets stuff from Bill in 3.6, 3.7 and 3.8</li> <li>Joe updates to 3.6 and merges changes he received from the pull - <strong>merge 3</strong></li> <li>Joe updates to 3.7 and merges changes he received from the pull - <strong>merge 4</strong></li> <li>Joe still in 3.7 merges 3.6 - <strong>merge 5</strong></li> <li>Joe updates to 3.8 and merges changes he received from the pull - <strong>merge 6</strong></li> <li>Joe still in 3.8 merges 3.7 - <strong>merge 7</strong></li> <li>Joe tries to push and prays that nobody pushed something to 3.6 in the meantime. </li> </ul> <p>We are thinking of writing an extension (or batch or program) to automatically merge this kind of situation. So when Joe finds out that he cannot push, he would just run <code>MergeUpAutomagically</code>. But before we try to fix this, I want to make sure we are using the right workflow.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload