My plan is to maintain, within git, the mapping between original and
    rebased commit, so that pulls, merges and rebases could tell what has
    already been seen and done, rather than attempting to replay commits.

    I propose to model them as  weak parents , akin to weak references: they
    link to a parent, but they don't demand the parent to be available, or
    keep the parent around, or cause the parent to be transmitted along with
    the branch.  If the other party has it, it can be used to improve merges
    and rebases; otherwise, it's ignored.

This is along the same lines as my correspondence table.
There are two differences:

* Store it within git itself vs separately.  If changing git is a
feasible approach, I agree inside git is better.  In the new version
of my plan, I adopted the idea of storing it within git.

* Weak parents vs correspondence table for pull.  The semantics
of these is different.  I think the correspondence table
better fits the desired semantics.


-- 
Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org, www.gnu.org

Reply via email to