Por Anónimo (no verificado) , 29 Abril 2026

El problema que resuelve range-diff

Supón que un contribuidor publica v1 de una serie de parches, luego v2 después de feedback. Como revisor, quieres ver qué cambió entre las versiones, no el diff acumulativo.

La invocación básica

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

Leer la salida

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
  • = commits idénticos.
  • ! commits con la misma intención pero contenido diferente.
  • > commits solo a la derecha.
  • < commits solo a la izquierda.

Lógica de emparejamiento

Range-diff usa metadatos del commit (asunto, autor, huella de contenido) para emparejar commits entre los rangos.

Revisar PRs con force-push

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 para releases

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

Ajustar la comparación

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

Integración con format-patch

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