<div dir="ltr"><div>My 2 cents</div><div><br></div><div>* A single commit in master should be a coherent change; buildable, testable and deployable</div><div><br></div><div>* No-one cares about the 30 commits it took you to get to the point of making this single change later when trying to figure out why/when something failed </div><div><br></div><div>* The source branch is irrelevant after the change hit master</div><div><br></div><div>* There are _always_ more people involved in a commit beyond Author/Committer. We just like to pretend they don't exist and don't represent them in the commit. There are other ways to describe this then the two fields provided by git, e.g.: <a href="https://github.com/torvalds/linux/commit/38e088546522e1e86d2b8f401a1354ad3a9b3303">https://github.com/torvalds/linux/commit/38e088546522e1e86d2b8f401a1354ad3a9b3303</a> </div><div><br></div><div>* A PullRequest shouldn't normally be about anything beyond a single change/commit. If it shows to be Multiple things, then either split out as two PullRequests or at least keep them as two commits.</div><div><br></div><div>* "Squash & Merge" vs. "Rebase & Merge" doesn't matter, it depends on the use case. Squash makes a single Patch of the difference between PullRequest branch and master and applies that on top of the master branch as a single new commit. Rebase rewrites the Pull Request branch to be on top of the master branch essentially creating all new commits then merge onto the master branch(in GitHub the rebase is _not_ reflected in the source Pull Request branch. The source Pull Request will have a different set of SHA commits compared to master). The benefit of Squash is that you get to rewrite the commit msg, the benefit of Rebase is that you can do multiple commits in one go.</div><div><br></div><div><br></div><div>-aslak-</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 27, 2016 at 9:36 PM, Baiju Muthukadan <span dir="ltr"><<a href="mailto:bmuthuka@redhat.com" target="_blank">bmuthuka@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Hi,</p>
<p dir="ltr">Git has a nice feature called "bisect" [1]<br>
to find regressions. In order to use it effectively, every commit in the upstream master should be build-able and testable irrespective of whether it is squashed or not.</p>
<p dir="ltr">[1] <a href="https://git-scm.com/docs/git-bisect" target="_blank">https://git-scm.com/docs/git-<wbr>bisect</a></p>
<p dir="ltr">Regards,<br>
Baiju M<br>
</p>
<br>______________________________<wbr>_________________<br>
almighty-public mailing list<br>
<a href="mailto:almighty-public@redhat.com">almighty-public@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/almighty-public" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/almighty-<wbr>public</a><br>
<br></blockquote></div><br></div>