{"thread":{"id":"31888","subject":"clone over slow/ unreliable network / partial clone with full history","startedAt":"2012-10-21T21:22:05Z","lastAt":"2012-10-21T21:22:05Z","messageCount":1,"participants":["Gelonida N"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"201657","messageId":"k61p1s$3fp$1@ger.gmane.org","threadId":"31888","inReplyTo":null,"subject":"clone over slow/ unreliable network / partial clone with full history","fromName":"Gelonida N","fromEmail":"gelonida@gmail.com","sentAt":"2012-10-21T21:22:05Z","receivedAt":"2012-10-21T21:22:05Z","isPatch":false,"sender":{"key":"gelonida@gmail.com","avatar":null},"body":"Hi,\n\n\nSometimes I have to clone a repository over a slow / rather unreliable \nnetwork and wonder whether there are any tools tricks to reduce the pain\nfor such cases.\n\n\nI'm having two problems:\n\nProblem 1: Resuming a clone:\n-----------------------------\n\nWhen the connection gets cut during the clone, then I don't know how to \ncontinue / resume the clone. This is very annoying. After 20 minutes of \ncloning my connection is los. I reclone after 15 minutes the connection \nis lost. I reclone and after 25 minutes I succeed.\n\nThe only wrokaround, that I know would require full ssh access to the \nserver. In fact it would be using rsync, (which can be resumed)\nclone from the rsynced copy and thenmanually change the url of origin.\n\n\n\nProblem 2: Full history but only required data\n-----------------------------------------------\nVery often I would only need a few versions (some branch heads / last \nweek's commits) However git clone --depth seems to have far too many \nrestrictions. (e.g. can't push from it)\nSo I wondered whether it would be possible to clone the entire history\nof a repositry, but fetch only the data of a few specific commits.\n\nThis would reduce the transfer time massively as the repository may \ncontine some huge binary files, which may change every few versions.\n\nWhat would be great would be.\n- download only the history (of course with a resume option if the \nconnection got interrupted)\n- then fetch the 'contents' for the version's I want to checkout\n   (ideally specify some commit ranges, but specifying some specific \ncommit id's would be good enough for me)\n\n\n\nAre there any helper tools/ plans which would allow such work flow?\n"}]}