Joseph Myers <jos...@codesourcery.com>: > On Wed, 18 Dec 2019, Eric S. Raymond wrote: > > > And that, ladies and gentlemen, is why reposurgeon has to be as > > large and complex as it is. > > And, in the end, it *is* complex software on which you build simple > scripts. gcc.lift is a simple script, written in the domain-specific > reposurgeon language.
The Patterns crowd speaks of "alternating hard and soft layers". The design of reposurgeon was driven by two insights: 1. Previous VCS-conversion tools sucked in part because they tried to be too automatic, eliminating human judgment. Repposurgeon is designed and intended to be a *judgment amplifier*, doing mechanics and freeing the human operator to think about conversion policy. Hence the DSL. 2. git fast-import streams are a pretty capable format for interchanging version-control histories. Not perfect, but good enough that you can gain a lot by co-opting existing importers and exporters. Mate the idea of a judgment-amplifying DSL to a structure editor for git fast-import streams and reposurgeon is what you get. -- <a href="http://www.catb.org/~esr/">Eric S. Raymond</a>