Я думаю, что вы можете использовать другую функцию, которая устанавливает отображение в false, когда setTimeout запускается в функции обработчика. Так что здесь функция hideShowing меняет отображение на false с помощью setTimeout. Это должно решить вашу проблему. Убедитесь, что вы очистили их в componentWillUnMount
handler = () => {
this.timer = setTimeout(() => {
this.setState({ display: true });
this.hideShowing();
}, 1000);
};
hideShowing = () => {
this.timer1= setTimeout(() => {
this.setState({
display: false
});
}, 1000);
}
componentWillUnMount(){
clearTimeout(this.timer);
clearTimeout(this.timer1);
}
Я управление версиями мои конфигурационные файлы, но я использую мерзавца вместо svn (который легче, когда у Вас есть несколько машин). У меня есть сценарий удара (названный install.sh
), также под репозиторием, который или копирует или символьные ссылки файлы к их соответствующему местоположению на машине.
Таким образом, если я должен настроить на новой машине, я просто делаю клон мерзавца репозитория (который эквивалентен svn контролю), и выполненный мой install.sh
настраивать мои файлы конфигурации в соответствующих местоположениях. Наличие install.sh
вокруг средств, что я также храню первоначальный тракт файлов конфигурации, поскольку Вы указали, что хотели бы.
Это - то, что я реализовал:
У меня есть сервер, который делает rsync всех конфигураций в один каталог (скажите что/data/configs/hostname/{и т.д., httpd}.
У меня есть rsync, работающий каждый час для передачи изменений. как только rsync завершен, существует svnautocommit сценарий, который делает автоматическую фиксацию изменений. Таким образом, я могу откатывать к любому изменению или любой версии, я хочу.
Вы, возможно, должны были бы запланировать структуру каталогов SVN на основе своих требований.
Я делаю это для нескольких машин, в пределах от старого Соляриса 8 полей к Mac OS X, и у меня есть действительно простой макет:
В моем репозитории у меня есть следующее:
<root>/common
/.emacs.d
/.bash_common
/scripts # platform-independent binary tools
<root>/linux
.bashrc
.emacs
...
<root>/solaris
.bashrc
.emacs
...
<root>/osx
.bashrc
.emacs
...
Каждая ОС homedirs имеет svn:externals ссылку на .emacs.d, .bash_common, и сценарии, таким образом, они не дублированы.
Кроме того, у меня есть .bash_hostconfig в Linux и solaris каталогах с определенной для хоста конфигурацией пути и таким, потому что у меня есть совсем другая установка на работе, чем я делаю дома (FC5-8 и RHEL3-5, в зависимости от того, где я).
Так, между этими вещами у меня есть довольно простой процесс для подъема и работы новой машины: Я просто проверяю / $platform во временный каталог и затем перезаписываю все в $HOME с теми файлами. Я не должен хранить первоначальный тракт, потому что это всегда - относительно $HOME этот путь.
Мы используем CVS для хранения конфигураций в структуре каталогов, которая является максимально плоской. Эта техника легко расширяется на SVN.
Затем нам настраивали Make-файл для использования экспорта CVS в:
У нас также есть эти tarballs, настроенные в увеличивающейся специализации, например, 10 соль, Apache, определенное приложение, и т.д.
HTH
удачи,
Ограбить
Хорошо Вы могли сохранить все конфигурационные файлы под определенным деревом каталогов, одним подкаталогом на приложение. Так как большинство приложений должно иметь директиву для определения пути конфигурации, это - затем единственная вещь, которая будет изменена (или если Вы трудно кодировали файлы конфигурации, возможно, чему-то нравится, включают, поддерживается) на сервер.
И это дерево могло затем быть проверено в любой VCS, который Вы любите.
Для развертывания можно записать сценарий оболочки или такую вещь, которая инициализирует все для использования дерева файла конфигурации.
Поскольку Вы хотите центральное хранилище так или иначе, можно пойти для чего-то немного более сложного как Слабый. Вы администрируете и управление версиями файлы в сервере нажатия, затем rsync это клиентам. Объяснение подролей имеет некоторые примеры того, как структурировать дерево.