With the advent of fast software evolution and multistage releases, temporal code analysis is becoming useful for various purposes, such as bug cause identification, bug prediction or code evolution analysis. Temporal code analyses consists in analyzing multiple Abstract Syntax Trees (ASTs) extracted from code evolutions, e.g. one AST for each commit or release. Core feature to temporal analysis is code differencing: the computation of the so-called Diff or edit script between two given versions of the code. However, jointly analyzing and computing the difference on thousands versions of code faces scalability issues. Mainly because of the cost of 1) parsing the original and evolved code in two source and target ASTs, 2) wasting resources by not reusing intermediate computation results that can be shared between versions. This paper details a novel approach based on time-oriented data structures that makes code differencing scale up to large software codebases. In particular, we leverage on the HyperAST, a novel representation of semantic code histories, to propose an incremental and memory efficient approach by lazifying the well known GumTree diffing algorithms. We evaluated our approach on a curated list of 19 large software projects and compared it to GumTree, a mainstream code differencing algorithm and tool. Our approach outperforms it in scalability both in time and memory. We observed an order-of-magnitude difference: 1) in CPU time from ×1.2 to ×12.7 for the total time of diff computation and up to ×226 in intermediate phases of the diff computation, and 2) in memory footprint of ×4.5 per AST node. Finally, we gain all the time while having a validity rate of 99.3 % of diffs with respect to GumTree and 99.999 % of valid mappings in the remaining 0.7 % diffs.