<story><title>Git-appraise – Distributed Code Review for Git</title><url>https://github.com/google/git-appraise</url></story><parent_chain><item><author>jauco</author><text>I have this &amp;quot;one weird trick&amp;quot; that I think is great, but somehow no-one else wants to use:&lt;p&gt;At one point I worked with a fellow dev where we did PR reviews just as commits on top of the branch. So you&amp;#x27;d check out their feature branch, run the equivalent of &amp;#x27;compare working tree with &amp;lt;main&amp;gt;&amp;#x27; for your editor and then look through the changes.&lt;p&gt;Because you&amp;#x27;re comparing the working tree you can leave comments... by typing source code comments (we used &amp;#x27;&amp;#x2F;&amp;#x2F; RVW(jauco)&amp;#x27; to mark them). You can fix typo&amp;#x27;s just by, well, fixing the typo and you share the review by pushing to the branch.&lt;p&gt;I found it to have the following advantages&lt;p&gt;- PR comments usually break when you rebase or merge (because they reference a line number). These obviously won&amp;#x27;t, at worst there will be a merge conflict that you handle the obvious way.&lt;p&gt;- If your PR comment requests explanation then the answer needs to be moved from the PR to the codebase, for future use. Writing comments in code means that you just need to clean up the conversation into a comment (or you can just leave it)&lt;p&gt;- You can use a proper text editor for writing the comments&lt;p&gt;- You can use code navigation while reading the changes (like, go to definition etc)&lt;p&gt;- Because of these the review gets a more active feel. You&amp;#x27;re more inclined to engage with the code rather then just reading it while leaning back in your chair&lt;p&gt;However, people tend to look at me like I&amp;#x27;m crazy for suggesting something like this. OTOH tools like this look completely crazy to me. Why do all this work to get a worse version of something you already have?</text></item></parent_chain><comment><author>palata</author><text>Have you ever tried the git e-mail workflow? I think you may like it, I&amp;#x27;d be curious to have your opinion about how it compares to your workflow above :-).&lt;p&gt;The idea is that you just send your patch by e-mail, and the reviewer just applies it with `git am &amp;lt;the patch&amp;gt;`. So you don&amp;#x27;t even have to sync on a branch. Then the reviewer can comment directly on the patch. You answer with new versions of the patch, and get new reviews. It&amp;#x27;s minimal, actually decentralized (unlike, say, GitHub), and I believe it has the advantages of your workflow above.&lt;p&gt;Nice posts about it:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;drewdevault.com&amp;#x2F;2018&amp;#x2F;07&amp;#x2F;02&amp;#x2F;Email-driven-git.html&quot; rel=&quot;nofollow noreferrer&quot;&gt;https:&amp;#x2F;&amp;#x2F;drewdevault.com&amp;#x2F;2018&amp;#x2F;07&amp;#x2F;02&amp;#x2F;Email-driven-git.html&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;drewdevault.com&amp;#x2F;2022&amp;#x2F;07&amp;#x2F;25&amp;#x2F;Code-review-with-aerc.html&quot; rel=&quot;nofollow noreferrer&quot;&gt;https:&amp;#x2F;&amp;#x2F;drewdevault.com&amp;#x2F;2022&amp;#x2F;07&amp;#x2F;25&amp;#x2F;Code-review-with-aerc.htm...&lt;/a&gt;</text></comment>
<story><title>Git-appraise – Distributed Code Review for Git</title><url>https://github.com/google/git-appraise</url></story><parent_chain><item><author>jauco</author><text>I have this &amp;quot;one weird trick&amp;quot; that I think is great, but somehow no-one else wants to use:&lt;p&gt;At one point I worked with a fellow dev where we did PR reviews just as commits on top of the branch. So you&amp;#x27;d check out their feature branch, run the equivalent of &amp;#x27;compare working tree with &amp;lt;main&amp;gt;&amp;#x27; for your editor and then look through the changes.&lt;p&gt;Because you&amp;#x27;re comparing the working tree you can leave comments... by typing source code comments (we used &amp;#x27;&amp;#x2F;&amp;#x2F; RVW(jauco)&amp;#x27; to mark them). You can fix typo&amp;#x27;s just by, well, fixing the typo and you share the review by pushing to the branch.&lt;p&gt;I found it to have the following advantages&lt;p&gt;- PR comments usually break when you rebase or merge (because they reference a line number). These obviously won&amp;#x27;t, at worst there will be a merge conflict that you handle the obvious way.&lt;p&gt;- If your PR comment requests explanation then the answer needs to be moved from the PR to the codebase, for future use. Writing comments in code means that you just need to clean up the conversation into a comment (or you can just leave it)&lt;p&gt;- You can use a proper text editor for writing the comments&lt;p&gt;- You can use code navigation while reading the changes (like, go to definition etc)&lt;p&gt;- Because of these the review gets a more active feel. You&amp;#x27;re more inclined to engage with the code rather then just reading it while leaning back in your chair&lt;p&gt;However, people tend to look at me like I&amp;#x27;m crazy for suggesting something like this. OTOH tools like this look completely crazy to me. Why do all this work to get a worse version of something you already have?</text></item></parent_chain><comment><author>sevazhidkov</author><text>I’ve recently listened to a talk from Jane Street about their review system: they use this method exactly with a helper tool that keeps track of what you’ve already reviewed in the PR, minus any changes that were committed after review. PR author also “reviews” the branch, so the code review comments and changes would show up on self-re-review (because they were not reviewed).&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;youtu.be&amp;#x2F;MUqvXHEjmus&quot; rel=&quot;nofollow noreferrer&quot;&gt;https:&amp;#x2F;&amp;#x2F;youtu.be&amp;#x2F;MUqvXHEjmus&lt;/a&gt;
Transcript: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.janestreet.com&amp;#x2F;tech-talks&amp;#x2F;janestreet-code-review&amp;#x2F;&quot; rel=&quot;nofollow noreferrer&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.janestreet.com&amp;#x2F;tech-talks&amp;#x2F;janestreet-code-review...&lt;/a&gt;</text></comment>