Encuentre adiciones solo de un file desde una versión específica hasta HEAD actual

Tengo una sucursal principal de git.
Supongamos que tenemos una línea principal y en varios puntos me ramifico.
Así que tomemos un file por ejemplo:

A -> B -> C -> D -> E -> F -> G -> E -> J -> K -> L -> M v.1.0.0 v.2.0.0 v.3.0.0 HEAD/master 

Así que tenemos, por ejemplo, el file foo.xml y esta es su línea de time y la versión B del file tiene la twig (v.1.0.0) y tenemos otros cambios en esa twig (se omite por claridad del diagtwig), entonces tenemos v2.0.0 y, finalmente, el estado actual de la cabeza / maestro está en la última versión del file M

Este file actúa como un file "scatch-pad" lo que significa que algunos de los contenidos se agregan después de la bifurcación y a medida que avanzamos de un elemento a otro, algunos se eliminan.

Pregunta:
¿Cómo puedo encontrar qué elementos (todos realmente) se agregaron desde la versión J hasta la versión M (no me importa si se quita algo agregado en J en una versión posterior, pero me interesa saber todo lo que se ha agregado? en todas las versiones)?
No sabría exactamente el SHA1 de J pero sabría el HEAD actual y el nombre de la twig anterior.
¿Cómo puedo hacer eso usando las herramientas git?

Nota:
Solo me importa foo.xml y sus cambios sobre los commits. No me importan otros files / cambios

Una simple diferencia parece suficiente

 git diff branch-old..HEAD foo.xml |grep '^+'