Быстрая чистая синхронизация Perforce через VPN - PullRequest
8 голосов
/ 16 ноября 2009

Мне нужно регулярно выполнять чистую синхронизацию Perforce с новым оборудованием / виртуальными машинами через VPN. Это может занять несколько часов, так как проект довольно большой. Есть ли способ, которым я могу просто скопировать современное дерево из существующего клиента и сказать Perforce использовать это дерево?

Ответы [ 3 ]

8 голосов
/ 17 ноября 2009

Прокси Perforce - правильный путь, но если вы действительно этого хотите, есть способ выполнить то, что вы просили, с помощью команды sync с помощью переключателя -k:

Флаг -k обходит файл клиента Обновить. Это может быть использовано для сервер считает, что клиентское рабочее пространство уже есть файл. Как правило это флаг используется для исправления Perforce сервер, когда это неправильно о том, что файлы на клиенте, используйте это опция может запутать сервер, если вы не правы в отношении содержимого клиента.

p4 sync -k //depot/someProject/...

Вы также можете использовать flush, который является синонимом sync -k:

p4 flush //depot/someProject/...

Только будь осторожен. Запомните эти последние слова, "... использование этой опции может сбить сервер с толку, если вы ошибаетесь в отношении содержимого клиента."

2 голосов
/ 17 ноября 2009

Perforce Proxy - это почти всегда верный путь, при условии, что для этой цели можно выделить локальный компьютер.

Полезный совет для Прокси-сервера - заставить его обновлять содержимое в одночасье, просто создав фиктивного клиента (возможно, на прокси-машине) и выбрав ночное задание для выполнения синхронизации - нормальная синхронизация подойдет, не должен быть чистым. Это гарантирует, что любые большие изменения, которые зарегистрировали люди, не обязательно вызовут существенную задержку при первой необходимости выполнить локальную синхронизацию.

Обратите внимание, что вам нужно живое VPN-соединение между прокси-сервером и сервером - прокси-сервер все еще должен общаться с сервером, чтобы определить, кэшированы ли правильные версии. Поэтому прокси-серверу нужна ссылка на сервер с достаточно низкой задержкой, но, по крайней мере, вам не нужно ждать фактической передачи файла.

Другая альтернатива, которую вы можете попробовать - это использовать опцию сжатия в ваших клиентских спецификациях (рабочих пространствах). Это говорит серверу сжимать каждый файл перед отправкой, и ваш клиент p4 автоматически распаковывает. Компромисс здесь - процессорное время и на сервере и на клиенте. Однако, если вы хотите синхронизировать несколько локальных клиентов, я думаю, что в конечном итоге прокси будет лучшим решением.

1 голос
/ 16 ноября 2009

Нет, но вам не нужно: зачем вам нужна чистая синхронизация исполнения? Что не так с нормальной синхронизацией? Если вам нужно очистить дерево, то почему бы не поработать над копией дерева?

Одной из альтернатив может быть запуск p4proxy на конце VPN-подключения, тогда неизмененные файлы не нужно будет передавать по VPN.

Если вам требуется только экспорт - то есть вам не нужно обновлять его или отправлять изменения из него, тогда вы можете просто скопировать существующую проверку и никогда не использовать перформанс с этим деревом. Но я все равно не знаю убедительного сервера производительности, что у вас есть проверка без p4, фактически проверяющей файлы.

...