<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Sep 3, 2014 at 2:16 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="">Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> writes:<br>
> This is truly a low point for your argument. You are not arguing against the<br>
> usefulness, nor that automation is better than doing it by hand, but that it<br>
> did not happen for a while and moral use of VC dictates that you do it<br>
> manually?<br>
> That is crazy.<br>
<br>
</div>A human has to review branches before merging.  Full stop.  There is no<br>
other option until computers become so advanced that they put<br>
programmers out of business.<br>
<br>
When you review a branch, you see what commits are coming in.  If you<br>
don't review the branch, there are countless ways to merge things that<br>
you don't want.  The specific accident of merging 'next' into 'master'<br>
or 'maint' is not the worst and actually fairly easy to notice.<br>
<br>
And now we're back to my request: if you want the system to enforce<br>
policy, make a concrete proposal for the precise semantics.  Otherwise<br>
take heart that the mistake we're babbling on about cannot occur if we<br>
do our jobs of reviewing branches before merging them.<br>
</blockquote></div><div class="gmail_extra"><br></div>The concrete proposal has been made many times. Here it is again: Do not</div><div class="gmail_extra">let anyone merge next into master. Babbling about how easy errors are to</div>
<div class="gmail_extra">avoid is senseless, and completely blind to all the neurological research.</div><div class="gmail_extra">People make simple mistakes all the time in every endeavor. That is why</div><div class="gmail_extra">
checklists are useful:</div><div class="gmail_extra"><br></div><div class="gmail_extra">  <a href="http://www.amazon.com/gp/product/0312430000/ref=pd_lpo_sbs_dp_ss_2?pf_rd_p=1535523722&pf_rd_s=lpo-top-stripe-1&pf_rd_t=201&pf_rd_i=0312421702&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=03HFEWSHC7FJJ080HS3F">http://www.amazon.com/gp/product/0312430000/ref=pd_lpo_sbs_dp_ss_2?pf_rd_p=1535523722&pf_rd_s=lpo-top-stripe-1&pf_rd_t=201&pf_rd_i=0312421702&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=03HFEWSHC7FJJ080HS3F</a></div>
<div class="gmail_extra"><br></div><div class="gmail_extra">That is why NASA has exhaustive lists of checks and counterchecks. And</div><div class="gmail_extra">that is why we should automate as many checks as possible. Reduction of the</div>
<div class="gmail_extra">cognitive load on the programmer is always good. Arguing that they should</div><div class="gmail_extra">have done something else profoundly misses the point.</div><div class="gmail_extra"><br></div>
<div class="gmail_extra">   Matt<br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>