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

    • Type: Sub-task
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      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

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

              Dates

              • Created:
                Updated: