Abstract: A computer system receives a plurality of files having respective file sizes. The computer system categorizes the files into different categories according to their respective file sizes. For a file in the first category, the computer system identifies first and second versions of the file and generates a difference between the two versions based on a view of the first version and a view of the second version. For files in the second category, the computer system identifies a file aggregation of the files by combining them into one file such that the combined file have a file size within the first file size range. The computer system identifies first and second versions of the file aggregation and generates a difference between the first and second versions based on a view of the first version and a view of the second version of the file aggregation.