Da Anonimo (non verificato) , 29 Aprile 2026

Il problema risolto da range-diff

Un contributore pusha v1 di una serie, poi v2 dopo feedback. Come revisore, vuoi vedere cosa e cambiato tra le versioni.

L'invocazione base

git range-diff main..v1 main..v2

Leggere l'output

1:  abc1234 = 1:  def5678 Add login form
2:  234abcd ! 2:  9876fed Validate email format
    @@ src/login.js
-    if (!email.includes("@")) {
+    if (!EMAIL_REGEX.test(email)) {
3:  <new>    > 3:  111aaaa Add unit tests for validator
  • = commit identici.
  • ! commit con stesso intento ma differenti.
  • > commit solo a destra.
  • < commit solo a sinistra.

Logica di pairing

Range-diff usa metadati commit per accoppiare commit.

Revisionare PR force-pushate

git fetch origin pr/123:pr-123-old
git fetch origin pr/123
git range-diff main..pr-123-old main..origin/pr/123

Range-diff durante rebase

git rebase -i HEAD~5
git range-diff ORIG_HEAD HEAD

Range-diff per release

git range-diff origin/release-1.4 origin/release-1.5

Tunare il confronto

git range-diff --creation-factor=80 base..v1 base..v2
git range-diff --no-patch base..v1 base..v2

Integrazione format-patch

git format-patch --range-diff=v1 --cover-letter -3