Ошибка синхронизации нескольких папок в Perforce с использованием API p4.net
Я использую API p4.net для рекурсивной синхронизации нескольких папок. Количество папок может исчисляться сотнями, в среднем по семь файлов в каждой. Я использую метод SyncFiles (из класса Client), и мой синтаксис выглядит так:
myP4Connection.Client.SyncFiles(syncOptions, fs);
где в опциях синхронизации единственный флаг, который я передаю, это -m
для макс. элементов, для которых установлено int.MaxValue
а также fs
является спецификацией файла P4, содержащей папку для синхронизации, и версию, установленную для версии заголовка.
Итак, проблема, с которой я сталкиваюсь: я никогда не сталкиваюсь с исключением, когда пытаюсь синхронизировать одну или несколько папок. Когда я пытаюсь синхронизировать большой набор ресурсов, клиент P4, кажется, не сбрасывает свои ресурсы, и иногда он выдает исключение, что он не может синхронизировать упомянутое местоположение депо. Папка, упомянутая в исключении, никогда не совпадает с папкой, переданной в вызове функции. Я могу преодолеть эту проблему, поспав в конце каждой синхронизации, но это не кажется надежным решением. Есть ли способ, которым я могу ограничить количество ресурсов, запрашиваемых у Perforce, чтобы я мог синхронизировать много папок асинхронно?
Буду признателен за любую помощь в этом.
Спасибо.
1 ответ
Просто чтобы быть ясно, вы бежите отдельно SyncFiles
Команды для каждой папки вы хотите синхронизировать? Есть ли причина, по которой вы делаете это вместо того, чтобы просто синхронизировать папку верхнего уровня?
В любом случае вы должны подать заявку в службу поддержки Perforce. Если в P4.NET есть ошибка производительности, им нужно будет ее диагностировать.