Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-3625 Commit shelving
  3. SVN-4748

Shelving: refactor so checkpoints are built from a series of simple shelves

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      Currently, a Shelf holds multiple Versions, and each version is a checkpoint.

      A Shelf provides nothing special. (It currently holds a single log message (and other rev-props) shared by all versions, but that effect can be trivially replicated.)

      A simpler, more modular design would invert the relationship, so a series of checkpoints would be managed by a higher layer as multiple shelves, linked together by a common name and incorporating a version identifier into the underlying Shelf object's name.

      That design would also match the typical manual method of storing patch files named "my-fix-1.patch", "my-fix-2.patch", etc.

      Any future attempt to share the base tree states between versions of one shelf should be equally well able to share it between different shelves.

      Attachments

        Activity

          People

            Unassigned Unassigned
            julianfoad Julian Foad
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: