Интересно, что Apple конкретно объясняет это поведение в своих NSURLSessionDataDelegate
(но ни в базовом делетете NSURLSessionTaskDelegate
, ни в NSURLSessionDownloadDelegate
)
ПРИМЕЧАНИЕ
Объект NSURLSession не должен иметь делегата. Если делегат не назначен, при создании задач в этом сеансе вы должны предоставить блок обработчика завершения для получения данных.
Блок обработчика завершения в основном предназначен как альтернатива использованию пользовательского делегата. Если вы создаете задачу с использованием метода, который принимает блок обработчика завершения, методы делегата для ответа и доставки данных не вызываются.
blockquote>
Ключевые слова SVN не являются хорошим решением. Поскольку другие указали, что добавляющий $Revision$ в файле только влияет определенный файл , который не может изменяться в течение долгого времени.
Запоминание "отредактировать" файл (путем добавления или удаления пустой строки), прежде чем каждая фиксация бессмысленна. Вы могли также просто ввести пересмотр вручную.
Один хороший способ сделать это (что я знаю о) должно иметь процесс автоматизированного развертывания (который всегда является хорошей вещью), и использование команды svnversion. Вот то, что я делаю:
Везде, где мне нужен пересмотр, я делаю включение: <?php include 'version.php'; ?>
. Этот "version.php" файл только имеет число пересмотра. Кроме того, это не часть репозитория (это установило, чтобы быть проигнорированным). Вот то, как я создаю его:
1) На проектах, где SVN установлен на сервере, я также использую его для развертывания. Получение последней версии к серверу, у меня есть сценарий, который среди прочего делает следующее (это работает на сервере):
cd /var/www/project
svn update
rm version.php
svnversion > version.php
2) На проектах, где SVN не установлен, мой сценарий развертывания более сложен: это создает version.php файл локально, архивирует код, загрузки и извлекает его
В большинстве случаев код сервера на самом деле содержал бы "Экспорт" кода, не контроль, и поэтому не содержал бы .svn папки. По крайней мере это - установка, которую я чаще всего вижу. Другие на самом деле проверяют свой код на веб-сервер?
Принятие Вашего webroot является проверенной копией дерева подверсии, Вы могли проанализировать/.svn/entries файл и сцепить число пересмотра (4-я строка здесь)...
В PHP:
$svn = File('.svn/entries');
$svnrev = $svn[3];
unset($svn);
Можно быть рядом с Ключевые слова SVN . Добавьте $Revision$, где Вы хотите, чтобы пересмотр показал, но который только покажет последний пересмотр, что конкретный файл был изменен, таким образом, необходимо будет делать изменение в файл каждым разом. Получение глобального числа пересмотра не возможно без своего рода внешнего сценария или рычага постфиксации.
Из этого ответа:
Можно сделать это путем добавления следующего где угодно в коде
$Id:$
Таким образом, например, Jeff сделал:
<div id="svnrevision">svn revision: $Id:$</div>
и при проверке в замененном $Id сервера: $ с текущим числом пересмотра. Я также нашел эту ссылку.
Существует также $Date: $, $Rev: $, $Revision: $
Самый легкий путь состоит в том, чтобы использовать Подверсию "Замена Ключевого слова". Существует руководство здесь в книге SVN ( Управление версиями с Подверсией ).
необходимо будет в основном просто добавить текстовый $Rev$ где-нибудь в файле. Затем включите ключевое слово в своем репозитории. На контроле SVN заменит числом пересмотра в файл.
Вы также можете сделать это так:
$status = @shell_exec('svnversion '.realpath(__FILE__));
if ( preg_match('/\d+/', $status, $match) ) {
echo 'Revision: '.$match[0];
}
Другая возможность сделать это - запустить cron, который выполняет шаги, описанные в «Процессе развертывания» (при условии, что это сервер * nix / FreeBSD).
См. Мой ответ на аналогичный вопрос «Отметить» экспорт svn с ревизией .
Если вы фиксируете номер версии при экспорте, вы можете использовать:
svn export /path/to/repository | grep ^Exported > revision.txt
Чтобы удалить все, кроме номера версии, вы можете передать это по конвейеру с помощью этой команды sed:
svn export /path/to/repository | grep ^Exported | sed 's/^[^0-9]\+\([0-9]\+\).*/\1/' > revision.txt