Все это связано с основной очередью. Есть 4 перестановки.
i) Последовательная очередь, отправка async: здесь задачи будут выполняться один за другим, но основной поток (эффект для пользовательского интерфейса) не будет ждать возврата
ii) Последовательная очередь , диспетчерская синхронизация: здесь задачи будут выполняться один за другим, но основной поток (эффект в пользовательском интерфейсе) покажет lag
iii) Параллельная очередь, отправка async: здесь задачи будут выполняться параллельно, а основной поток (эффект на UI) не будет ждать возврата и будет плавным.
iv) Параллельная очередь, диспетчерская синхронизация: здесь задачи будут выполняться параллельно, но основной поток (эффект для пользовательского интерфейса) будет show lag
Ваш выбор параллельной или последовательной очереди зависит от того, нужен ли вам результат предыдущей задачи для следующего. Если вы зависите от предыдущей задачи, примите очередность очередности, возьмите параллельную очередь.
И, наконец, это способ проникнуть обратно в основной поток, когда мы закончили с нашим бизнесом:
DispatchQueue.main.async {
// Do something here
}
Вот решение, которое работает на меня. Это действительно требует, чтобы Вы выполнили две коротких команды однажды в рамках любой копии repo.
В рамках любой копии Вашего repo, сделайте следующее:
$ cp-a .git/hooks .githooks
$ добавляют, что мерзавец .githooks
$ фиксирует-m, 'добавил .githooks каталог'
Примечание, только необходимо сделать эти первые два шага однажды в любом из repos, не в каждой локальной копии.
В рамках каждой локальной копии repo Вам будет нужно к [1 119]
$ - локальный core.hooksPath .githooks
$ .githooks/post-commit
клиентские рычаги мерзавца не выполняются на сервере - но почему нет?
Обычно Вы продвигаете к пустому repo (repo без рабочего дерева, где Вы не можете делать любую фиксацию непосредственно)
Так , фиксации серверной стороны больше об осуществлении политик, чем создание новых фиксаций.
при реальной необходимости в новом содержании, которое будет создано на стороне сервера (особенно один у Вас нет прямого управления, как GitLab.com), Вам было бы нужно: