P3D3::Resume interrupted pulls/clones

Create issue
Issue #303 open
David Rowbory created an issue

I'm living in a place with rather poor internet conenction (slow but worse there are often connection failures) so trying to initially clone or pull from a new online repository is very painful because a lot of the time it just stops. There are two issues:

When the connection fails, it leaves the lock file there so I have to manually remove that file then hg recover. That took some research to find out and a GUI option for it when a pull has timed out (or on cancelling a pull) would be rather helpful.

Some way of resuming interrupted pulls or clones would be great. Currently it seems to be all or nothing, which for me means nothing. I saw a GSoC submission discussed this sort of thing 2 years ago and I know there's a group called palaso trying to do the same sort of thing, and I see there's something about largefile support with resumes and caching in recent Hg so I just wanted to mention it.

Comments (3)

  1. Jason Harris repo owner
    • changed status to open

    Interesting thoughts... (I actually do my primary work remotely as well so I know these frustrations.) Actually for me for initial pulls of large repositories (>200M say), I often zip up the repo on the remote side, the use scpresume to get it to my machine then unzip it and then go from there..

    However, I don't have the stalling problem at all. Would you be interested in submitting a patch for this? Since you can reproduce this? When switching to the repo we should check the lock file and then present an alert like "This repo was or is in the middle of a transaction, would you like to reset the lock file?" with an appropriate help message. Maybe this would go in loadCombinedInformationAndNotify inside RepositoryData.m?

    Cheers, Jas

  2. Former user Account Deleted

    If you have an ssh server you can get to with a stable internet connection, you can ssh into your server. Fire up GNU screen, and then hg clone to that server. Afterwards, you can use rsync to copy all the files to your local box. If rsync hangs, ctrl-c and then start it up again. It will know what files it needs to copy still.

  3. Log in to comment