Smoosh (BitKeeper, SCCS Heritage)
Created on 2023-05-10T22:14:25-05:00
SCCS files have a "weave" where all versions of the file are packed in a line-based file format.
If files are developed independently, the histories diverge and are no longer compatible.
Smoosh takes an S-file in the trunk, an S-file from the field, and attempts to merge them as though the field file had always been developed with the rest of the working group.
Smoosh finds a common ancestor to both S-files and then performs a merge of history. Serial numbers need to be changed from the field file though.
Spiritually this goes to the common ancestor, branches, and grafts the new history in to place. It actually tries to avoid branching in practice--patches are added in a fast-forward fashion until a conflict occurs, then a branch happens and the rest of the file is grafted in.