• 
      

    Clean up and document the code for diffing signatures.

    Review Request #9569 — Created Feb. 2, 2018 and submitted — Latest diff uploaded

    Information

    Django Evolution
    master
    cc1ff40...

    Reviewers

    The Diff class is responsible for taking two project signatures and
    diffing them, showing the changes that the target signature has that the
    original one does not, and generating a hinted evolution to turn the
    original into the target. It's old code that was getting harder to
    reason about and maintain.

    This change fixes up that code a bit, adding and clarifying
    documentation and separating out information gathering from state storage
    for the diff (and making it far more efficient in the process). It's now
    easier to read through and see the various bits of logic and to modify
    it. This will be needed for the upcoming signature work.

    Unit tests pass for all versions of Django.