At startup git checkout, the mergebase of the old HEADand the new HEADcan be arbitrarily far back. A naive implementation would be to linearly apply each diff, but the operation is instantaneous.
I have a hunch that it could be implemented with something like skiplisty for intermediate diff caching, but this is just an assumption.
Does anyone know how this is implemented? Thank you :)
source
share