У меня очень простая установка Mercurial для Windows на моем компьютере. «Центральный» репозиторий находится по адресу //mymachine/hg-repos/central
.
Я хочу, чтобы удаленные (VPN) пользователи могли создавать клоны этого репозитория в hg-repos
каталог, потому что он получает ежедневные резервные копии. Я предоставил этим пользователям полный контроль над hg-repos
каталог. У меня такой вопрос:
Если я нахожусь на удаленном компьютере и запускаю команду:
hg clone //mymachine/hg-repos/central //mymachine/hg-repos/central-copy
удаленная машина делает большую часть работы?
Я не хочу, чтобы клиенту приходилось скачивать весь центральный репозиторий, а затем выгружать его обратно, потому что люди будут использовать его со всей страны. Но я подозреваю, что это именно то, что здесь происходит, поскольку это работает так легко.
Ваша команда выполняется локально (в конце концов, вы запускаете исполняемый файл "hg" с локальной машины). Оба параметра являются удаленными смонтированными каталогами и ведут себя как локальные каталоги. Таким образом, локальная программа "hg" работает так, как если бы она работала с локальными файлами.
Это «лучше», чем загрузка / повторная загрузка? Я не знаю, это зависит от того, как операционная система обрабатывает операцию «копирования» в удаленных каталогах. Может быть, у него есть примитив для отправки на сервер команды «копировать», но я в этом очень сомневаюсь.
Я уверен, что он читает все дерево каталогов и, вероятно, загружает / выгружает все содержимое файла.
Он должен выполнять только эквивалент cp -r
с последующим обновлением hg. Это должно быть немного эффективнее, чем загрузка + повторная загрузка.