Назад | Перейти на главную страницу

Прокси-сервер Perforce: кэширование выборочных файлов

Я только что создал Прокси-сервер Perforce для работы. Я замечаю, что каталог кеша очень быстро заполняется файлами, которые, как я знаю, мне никогда не понадобятся. Например, в депо есть «песочница», где пользователи хранят личные филиалы и другую работу; а p4 sync заставляет прокси-кеш p4 захватывать песочницы этих пользователей, когда они мне никогда не понадобятся. Я бы создал символическую ссылку для каталога песочницы на /dev/null но тогда я бы не кешировал мой песочница, которая меня интересует.

Есть ли способ сообщить прокси-серверу perforce что-то вроде «если мне не приходилось его синхронизировать, пожалуйста, не кэшируйте его»?

Я думаю, что может быть какое-то непонимание того, как работает Perforce RCS, а также прокси. Я предполагаю, что вы смотрите на прокси-кеш на диске и видите файлы с части хранилища или сервера, которые вы не ожидаете увидеть? Если да, проверьте некоторые из этих файлов, и я гарантирую, что вы узнаете, что они были источником интеграции с хранилищем, которое вы пытаетесь синхронизировать. Если вы не используете команду p4 snap для отмены всех ленивых копий, созданных во время интеграции, это сделано «намеренно».

Вы не можете запретить прокси-серверу кэшировать файлы.

Вот несколько вариантов:

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

  • Напишите задание cron, которое удаляет ненужные папки из каталога кеша, и запускайте его ежечасно (или даже чаще, если хотите). Удалять файлы из кеша p4p во время его работы безопасно.

  • Удалите старые файлы из кеша, чтобы он не увеличивался без ограничений. Существуют сценарии, которые могут это сделать.

  • Добавьте больше места на диске, чтобы не беспокоиться об этом :)

Прокси-сервер кэширует только то, что вы запрашиваете с сервера, поэтому, если вам «не приходилось синхронизировать это», он не будет кэшироваться. Если вы не хотите кэшировать весь каталог песочницы, не синхронизируйте весь каталог песочницы. Синхронизируйте только то, что вам нужно. Похоже, вы делаете это:

p4 sync //depot/sandbox/...

вместо этого (скажем, ваша директория песочницы называется fbrereto):

p4 sync //depot/sandbox/fbrereto/...