Files larger than a certain size, say 10MB, are stored in an external place. The file names and md5 checksum are stored and revisioned in the repository. An "hg update -r REV" will update files tracked by the normal repository and by the external place to the specified revision.