Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-730

restartable checkouts

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: all
    • Fix Version/s: 0.23
    • Component/s: src
    • Labels:

      Description

      If a checkout fails mid-way, or is interrupted, we
      have a 2 big problems.
      
      1.  The working copy is not "aware" that it's
      incomplete.  An 'svn up' only repairs missing data
      because it notices that something is in its
      entries file but not on disk.  But an incomplete
      checkout has an entries file that is downright
      *wrong*.  If the entries file is missing data, the
      wc is screwed forevermore.  An 'update' won't do a
      thing, because it has no idea what the proper
      entries list should be.  Somehow, we need create
      working copies in an "invalid" state from birth; 
      when the checkout truly finishes, the whole wc
      should be loggily shifted into "valid" state.
      
      2.  Once we accomplish point #1, it would be nice
      if we could  somehow make failed checkouts
      "continue" from where they left off when the
      checkout is re-run.  CVS is able to do this, and
      we can't.   This is a design issue that needs
      discussion.  In a nutshell, the svn client always
      assumes that it has a valid entries file, while
      the cvs client never trusts the entries file -- it
      says "I have these entries, what do I need?" 
      ...Whereas svn will simply report nothing but diffs.
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                sussman Ben Collins-Sussman
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: