<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 6, 2018 at 9:27 PM, Cameron McCormack <span dir="ltr"><<a href="mailto:cam@mcc.id.au" target="_blank">cam@mcc.id.au</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>





<div><span><div>On Thu, Jun 7, 2018, at 2:15 PM, Eric Rescorla wrote:<br></div>
<blockquote type="cite"><div dir="ltr"><div>So, say for the sake of argument you are working for some feature, and<br></div>
<div>the git history consists of:<br></div>
<div><br></div>
<div>    origin/master -> A1 -> A2 -> A3<br></div>
<div><br></div>
<div>When you do |arc diff|, this will create a single Revision (say D1)<br></div>
<div>which contains all of A1, A2, A3.<br></div>
</div>
</blockquote><div><br></div>
</span><div>Are A1, A2, and A3 all separately viewable and reviewable in Phabricator when I open D1, or do they get squashed down to a single (let's call it) patch?  Can I give say r+ to A1 and r- to A2 and A3?<br></div></div></blockquote><div><br></div><div>They're basically squashed down to a single patch [0]. You can't review them independently. However, you can do interdiffs between the various Diffs (i.e., versions) of a Revision.</div><div><br></div><div>To be a little more concrete about it, In my work I usually end up with a git history that looks like:</div><div><br></div><div>- Checkpoint: function written but doesn't compile</div><div>- Checkpoint: compiles</div><div>- Checkpoint: most tests pass</div><div>- Checkpoint: OK, all tests pass now</div><div>- Clang-formatted</div><div><br></div><div>These are all part of the same conceptual unit and I don't want them independently reviewed, so in Phabricator you'd just make those one Diff (which happens on its own without squashing them down to a single commit).</div><div><br></div><div><br></div><div>And then once it's been reviewed, my git history would look like:</div><div><br></div><div><div>- Checkpoint: function written but doesn't compile</div><div>- Checkpoint: compiles</div><div>- Checkpoint: most tests pass</div><div>- Checkpoint: OK, all tests pass now</div><div>- Clang-formatted</div>- Responses to review comments  <- New<br></div><div>- Re-clang-formatted <- New</div><div><br></div><div>And when I updated the revision, Phabricator would have two diffs, corresponding to:</div><div><div><br></div><div><div>- Checkpoint: function written but doesn't compile</div><div>- Checkpoint: compiles</div><div>- Checkpoint: most tests pass</div><div>- Checkpoint: OK, all tests pass now</div><div>- Clang-formatted               <wbr>                        <- R01<br></div>- Responses to review comments  <br></div><div>- Re-clang-formatted            <wbr>                      <- R02</div><div><br></div>And so the views it gives you are: base -> R01, base->R02, R01  -> R02</div><div><br></div><div>-Ekr</div><div><br></div><div>[0] I think technically you can see the commits, but you can't review them so best to think of that as meta-data.<br></div><div><br></div></div></div></div>