Оказывается, мне просто нужно было заменить useEffect
на useLayoutEffect
из документов :
Подпись идентична useEffect, но он запускается синхронно после всех мутаций DOM. Используйте это для чтения макета из DOM и синхронного повторного рендеринга. Обновления, запланированные внутри useLayoutEffect, будут сбрасываться синхронно, прежде чем браузер сможет рисовать.
BLOCKQUOTE>
Все возможно :)
Править: поспешность никогда не приводит к качеству, ни сделала мой ответ, пропустив все Справочники по Windows в вопросе. Таким образом, вот информация о том, как получить синхронизацию, работающую над Windows.
У Вас есть 2 машины в этом случае:
Создайте новый репозиторий на B, с которым Вы хотите синхронизироваться от A. Очень важно, чтобы этот репозиторий был пробелом (работающий rev0).
На B, в папке SVN недавно созданного репозитория, обзора к рычагам / и создают следующие Bat-файлы:
start-commit.bat
IF "%2" == "someusername" (goto :label1) else (echo "Only the someusername account may commit new revisions" >&2 )
exit 1
goto :eof
:label1
exit 0
pre-revprop-change.bat
IF "%3" == "someuser" (goto :label1) else (echo "Only the someuser user may change revision properties" >&2 )
exit 1
goto :eof
:label1
exit 0
someuser
будучи syncuser, который существует в машине репозиторий A и является единственным пользователем с правами в машине репозиторий B. Очень важно, чтобы никакие фиксации не были сделаны вручную к машине репозиторий B.
В /hooks
папка репозитория на машине A
post-commit.bat
CD PATH_TO_SUBVERSION\bin
svnsync sync svn://machineB/repos --non-interactive --no-auth-cache --source-username machineAusername --source-password machineApassword --sync-username machineBusername --sync-password machineBpassword
После того как эти пакетные файлы существуют, мы должны сказать репозиторию на B, что хотим синхронизироваться с ним:
svnsync initialize svn://
machineB/repos svn://
machineA/repos --non-interactive --no-auth-cache --source-username
machineAusername --source-password
machineApassword --sync-username
machineBusername --sync-password
machineBpassword
который должен возвратить что-то как: Copied properties for revision 0.
Теперь каждый раз, когда Вы фиксируете в репозиторий на машине, это будет скопировано в машину репозиторий B.
Очень важно отметить что, если Вы хотите синхронизироваться с Google Code или другим репозиторием онлайн, что они фиксируют магистральное/ответвление/тег структуру в пересмотр 1. Необходимо связаться с ними для сброса репозитория, если Вы хотите использовать их местоположение репозитория сторонних производителей в качестве репозитория синхронизации.
Дать кредит, где должный я скопировал pre-revprop-change.bat и start-commit.bat из http://www.svnforum.org/2017/viewtopic.php?t=5745&sid=06551a22d9c0b5780cf1faab6b0e8ce9
Я просто реализовал это сам на тестовом репозитории и, кажется, работаю как очарование. Я рад, что заметил этот вопрос, хотя svnsync снизился слишком в глубине души в моем черепе. Я означал делать настроенный это при установке svn на работе. Таким образом, я знаю то, что первая вещь, я буду делать на работе завтра, спасибо за это!
РЕДАКТИРОВАНИЕ 2:
Если у Вас, как я, есть тонны репозиториев, этот универсальный post-commit.bat мог бы обратиться к Вам:
SET REPOS=%1
SET REV=%2
SET REPOS=%REPOS:D:\SVN=%
CD "C:\Program Files\Subversion\bin"
svnsync sync svn://machineB/%REPOS%-sync --non-interactive --no-auth-cache --source-username usernameA --source-password passwordA --sync-username usernameB --sync-password passwordB
Это ловит название репозитория и использует его для динамичного определения синхронизирующего URL. Я снабдил суффиксом все свои репозитории синхронизации на машине B с -sync
для ясности. D:\SVN
бит является корнем svnserve на machineB даже при том, что этот универсальный Bat-файл должен быть помещен в / рычаги корня svnserve machineA.
Я не уверен, что полностью понял Вашу проблему, но я думаю, что то, что Вы ищете, является svnsync.
У Вас могут быть свой основной репозиторий в жестком диске Вашего ноутбука и зеркальный репозиторий в Вашем настольном/домашнем сервере.
Просто передайте свои изменения в основном репозитории и затем синхронизируйте его в свой зеркальный репозиторий (репозитории). Этот процесс является возрастающим, поэтому только изменения, так как последняя синхронизация является trasferred, но быть осторожной с неимеющими версию свойствами.
С чистой точки зрения SVN нет у Вас может только быть одна .svn папка, которая указывает только на 1 repo в Вашей рабочей папке.
Можно использовать post-commit-hooks на svn repo, чтобы попытаться сохранить обоих repos в синхронизации.. но действительно у Вас просто есть неправильный инструмент если, именно это Вы хотите.
Проблема Ваш описывает, в ее основе распределенная система управления версиями как МЕРЗАВЕЦ. Который позволяет Вам делать фиксации локально и также продвигать его в удаленный репозиторий.
Вы могли даже использовать МЕРЗАВЦА локально и SVN как Ваш удаленный repo, если бы Вы были так склонны.