svn resuming aborted checkout

Situation - have enormous repository, slow and unreliable link (read - vpn that breaks from time to time).

We are subject of frequent branching, moving things, so every now and then whole new branch should be taken from the repository (checkout).

Is there a way to 'resume' broken checkouts? Is it safe to do svn checkout with same parameters and expect it to skip what is downloaded and download what is not?


Just ran into the same problem. I had to interrupt a checkout because it was taking an absurdly long time. When I went to "resume" the checkout, it wasn't clear whether I should re-initiate the checkout or simply do an svn update.

After attempting to to do the svn update to resume the checkout, I got a wonderful error message saying that the directory was "locked". I tried issuing a "Release Lock" from Tortoise SVN, but this didn't help.

Ultimately, what I ended up having to do was issue an svn cleanup to release whatever stranglehold Subversion had in place. After that, I was able to continue my previously initiated checkout by performing kicking off another update (svn update or "SVN Update" from the Tortoise SVN context menu).


From the Subversion documentation

If you interrupt a checkout (or something else interrupts your checkout, such as loss of connectivity, etc.), you can restart it either by issuing the identical checkout command again or by updating the incomplete working copy.


svn update

does the job for you.


The way I see it, there are three possibilities:

  • It does the checkout correctly and completely, without any headache for you. Problem solved.

  • It checks out everything that didn't get checked out last time. You do 'svn update' and you're golden.

  • It discovers that some stuff has been modified since having been checked out, complains, and aborts. You'll just have to remove the conflicting stuff.

In any event, any file that's been successfully checked out of the repository has associated metadata in your local tree and that will ensure that 'svn update' will get you the most recent version.


move into the copy directory

svn update    
svn cleanup
cd..

svn checkout download_path