Perforce Proxy Server: кэширование выборочных файлов

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

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

3 ответа

Решение

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

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

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

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

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

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

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

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

p4 sync //depot/sandbox/...

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

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

Другие вопросы по тегам