Как я могу получить доступ к фиксировавшему файлу от рычага Подверсии перед фиксацией в Perl?

Общий

  • не пытаются оптимизировать, прежде чем Вы начнете видеть, что реальный мир загружается. Вы могли бы угадать, но если Вы не делаете, Вы потратили впустую свое время.
  • Использование jmeter, xdebug или другой инструмент для сравнительного тестирования сайта.
  • , Если загрузка начинает быть проблемой, или объект или кэширование данных будут, вероятно, включены, так обычно читать на кэширующихся опциях (memcached, опциях кэширования MySQL)

Код

  • Профиль Ваш код так, чтобы Вы знали, где узкое место, и является ли это в коде или базе данных

Базы данных

  • Использование MYSQLi, если мобильность к другим базам данных не жизненно важна, PDO иначе
  • , Если сравнительные тесты показывают, что база данных является проблемой, проверьте запросы, прежде чем Вы начнете кэшироваться. Используйте , ОБЪЯСНЯЮТ для наблюдения, где запросы замедляются.
  • После того, как запросы оптимизированы, и база данных кэшируется в некотором роде, можно хотеть использовать несколько баз данных. Или тиражирование в несколько серверов или sharding (разделяющий данные по нескольким базам данных/серверам) может быть соответствующим, в зависимости от данных, запросов и вида поведения чтения-записи.

Кэширование

  • Много записей делалось на кэширующемся коде, объектах и данных. Ищите статьи о APC, Оптимизатор Зенда , memcached, QuickCache, JPCache. Сделайте часть этого, прежде чем Вы действительно должны будете, и Вы будете менее обеспокоены начинанием неоптимизированного.
  • APC и Оптимизатор Зенда являются кэшами кода операции, они ускоряют код PHP путем предотвращения перепарсинга и перекомпиляции кода. Вообще простой установить, стоящий выполнения рано.
  • Memcached является универсальным кэшем, который можно использовать для запросов кэша, функций PHP или объектов или всех страниц. Код должен быть конкретно записан для использования его, который может быть включенным процессом, при отсутствии центральных точек для обработки создания, обновления и удаления кэшируемых объектов.
  • QuickCache и JPCache являются кэшами файла, в других отношениях подобными Memcached. Фундаментальное понятие просто, но также и требует кода и легче с центральными точками создания, обновления и удаления.

Разное

5
задан Chicago 6 November 2009 в 17:58
поделиться

3 ответа

крючок для предварительной коммитации:

my $repos = shift;
my $txn = shift;

foreach my $line (`$svnlook changed -t $txn "$repos"`)
{
  chomp($line);
  if ($line !~ /^([AUD]).\s\s(.+)$/)
  {
    print STDERR "Can't parse [$line].\n";
    exit(1);
  }
  else
  {
    my $action = $1;
    my $file = $2;
    chomp($file);
    #If path has trailing slash, then it is a folder and we want to skip folders
    if($file =~ /\/$/)
    {
    next;
    }
    my $fileContent = `$svnlook cat -t $txn "$repos" "$file"`;
    if ($action =~ /[AU]/)
    {
       my @lines = split(/\n/, $fileContent );
       #Check for whatever you need in this file's content

    }
  }
}
11
ответ дан 13 December 2019 в 19:29
поделиться

Похоже, вы уже определили основу:

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

Вы найдете некоторую информацию о написании обработчиков перед фиксацией в руководстве .

0
ответ дан 13 December 2019 в 19:29
поделиться

Не должно быть слишком сложно изменить этот пример в Python , чтобы делать то, что вы хотите. См. Также подкаталог hooks вашего репозитория для некоторых шаблонов и сценариев ловушек и собственных сценариев ловушек .

0
ответ дан 13 December 2019 в 19:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: