Как ускорить выполнение автоматического разрешения? - PullRequest
9 голосов
/ 29 января 2010

Я хотел бы знать, как ускорить автоматическое разрешение при выполнении интеграции (объедините свои и свои, если нет конфликтов).

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

Кроме того, интерфейс p4v не дает никаких подсказок относительно хода выполнения задания, вы не знаете, завершится ли он через секунду или в следующем году.

Ответы [ 4 ]

2 голосов
/ 14 августа 2014

У меня также есть похожая проблема при работе с прокси на другой стороне земного шара.Я провел несколько экспериментов, и проблема, кажется, не зависит от размера файла или метода разрешения (accept-Их и т. Д.), По крайней мере, для небольших файлов.

Я предполагаючто для каждого файла предусмотрены определенные затраты в оба конца, поскольку общее время разрешения довольно постоянное, независимо от того, разбиваю ли я команду на отдельные команды разрешения для каждого файла, группирую их по группам файлов или разрешаю весь список изменений.В моем случае издержки составляют около 1 секунды на файл для> 10 тыс. Файлов.

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

Итак, в моем случае это не решение проблемы, а жизнеспособный обходной путь, который экономит часы.

2 голосов
/ 20 марта 2010

5000 файлов не очень много для разрешения, для умеренно мощного сервера.

Ваши файлы имеют бинарный размер? если ваши 5000 файлов являются бинарными, autoresolve проверит их контрольную сумму на локальном жестком диске для сравнения с контрольной суммой на сервере (не прокси, который просто передает вам информацию или файлы), и это может замедлить работу.

Если вы заранее знаете, что пытаетесь разрешить в одну сторону (есть ваши на жестком диске или есть на сервере), вы можете использовать опции «принять свои» или «принять их» для автоматического разрешения и пропустите операцию контрольной суммы. Из командной строки это будет "p4 resolver" с опцией "-ay" или "-at" соответственно.

Вы также можете обратиться к администратору базы данных Perforce и попросить их записать действия сервера. Возможно, при выполнении интеграции и разрешения выполняются действия, которые удерживают блокировки файлов, заставляя вас вращаться и ждать, пока блокировки не будут сняты. См. Ссылку для « p4 monitor show -a ».

Например, в нашем офисе в понедельник утром все сотрудники офиса обычно объединяются в свои частные филиалы и решают.

1 голос
/ 30 января 2010

Полагаю, вы могли бы выполнить разрешение из командной строки, что может дать вам некоторое представление о том, что оно все еще развивается, и не помешает вам работать в P4V.

0 голосов
/ 05 февраля 2010

Если вы заранее знаете, что это будет , то наверняка будет односторонним решением, возможно, вы могли бы попытаться принудительно принять "свою" или "вашу" версию. См. «P4 help решить» из командной строки, в частности параметры «-at» и «-ay».

Я не знаю наверняка, принесет ли он какой-либо выигрыш в производительности или нет, но достаточно легко его опробовать (и провести некоторый сравнительный анализ).

...