  Like conventional software projects, projects in model-driven software
engineering require adequate management of multiple versions of development
artifacts, importantly allowing living with temporary inconsistencies. In
previous work, multi-version models for model-driven software engineering have
been introduced, which allow checking well-formedness and finding merge
conflicts for multiple versions of a model at once. However, also for
multi-version models, situations where different artifacts, that is, different
models, are linked via automatic model transformations have to be handled.
  In this paper, we propose a technique for jointly handling the transformation
of multiple versions of a source model into corresponding versions of a target
model, which enables the use of a more compact representation that may afford
improved execution time of both the transformation and further analysis
operations. Our approach is based on the well-known formalism of triple graph
grammars and the aforementioned encoding of model version histories called
multi-version models. In addition to batch transformation of an entire model
version history, the technique also covers incremental synchronization of
changes in the framework of multi-version models.
  We show the correctness of our approach with respect to the standard
semantics of triple graph grammars and conduct an empirical evaluation to
investigate the performance of our technique regarding execution time and
memory consumption. Our results indicate that the proposed technique affords
lower memory consumption and may improve execution time for batch
transformation of large version histories, but can also come with computational
overhead in unfavorable cases.
