开发者

svn resuming aborted checkout

开发者 https://www.devze.com 2023-01-22 08:20 出处:网络
Situation - have enormous repository, slow and unreliable link (read - vpn that breaks from time to time).

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.


I also had same issue and finally thing which work for me is:- Step 1. In root folder right click on empty space and select "TortoiseSVN > Clean up..." then check all option in pop-up and run this Step 2. right click on empty space and click "SVN Update.."

It starts to resume now.


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


I had to checkout a big repository over an unreliable connection, so the co failed many times. Based on the answers here, I've ended up with a little loop, trying continuously the checkout (works with bash and other unix shells):

while ! svn co http://myserver/svn/myrepo/
do
    (cd myrepo; svn cleanup)
done

The same with some decoration if you want to know at the end how many retrials were needed:

i=0
while ! svn co http://myserver/svn/myrepo/
do
    i=$[i+1]
    (cd myrepo; svn cleanup)
done
echo $i

0

精彩评论

暂无评论...
验证码 换一张
取 消