Git can operate on two local repos reasonably efficiently, IIRC, so diffing and applying commits should be doable.