Есть ли способ постепенно клонировать хранилище из Интернета? - PullRequest
7 голосов
/ 17 января 2011

Я нахожусь на dialup в паршивом месте (да, это все еще происходит в 2011 году), и пытаюсь клонировать огромный репозиторий. Запускается без проблем, но каждый раз, когда коммутируемый доступ отключается (кажется, что это неизбежно),! #% $ * Hg откатывает все назад, и у меня снова остается пустой каталог.

Есть ли решение, кроме как сделать это на удаленном ПК и затем загрузить все это по FTP или что-то еще?

Ответы [ 3 ]

8 голосов
/ 17 января 2011

В bash-подобной оболочке вы можете сделать что-то вроде этого:

$ hg init myclone
$ cd myclone
$ for REV in `seq 10 10 100` ; do hg pull -r $REV <REMOTEREPO>; done

Начиная с 10, каждое нажатие загружает следующие 10 ревизий, вплоть до 100. В случае потери соединения настройтеПервый аргумент seq соответствует тому, что вы уже потянули.

1 голос
/ 15 октября 2014

В зависимости от того, насколько нестабильно ваше соединение, есть два варианта выполнения начальных клонов.

Во-первых, вы можете попробовать так называемые «потоковые клоны». Они минимизируют время до первого байта , но обычно для передачи требуется немного больше данных.

Вот как создать потоковый клон:

$ hg clone --uncompressed https://~~~~

Вторым вариантом будет операция hg clone –-rev, за которой следует ряд дополнительных попыток. Это ведет себя так же, как клонирование хранилища в далеком прошлом и периодические обновления.

$ hg clone --rev 5 https://~~~~
0 голосов
/ 12 сентября 2015

Исходя из приведенных здесь предложений,

Я создал репо, который сделал это.

https://github.com/nootanghimire/hg-clone-bash

Он оптимизирован для одного репо, но я думаю, вы можете раскошелиться и работать над ним!:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...