
Я использую VSC в качестве редактора на Windows 10 Pro и хочу синхронизироваться с удаленным сервером при изменении файла.
Я установил WSL с гостевой системой Debian
Если я запущу этот скрипт
while inotifywait -r -e modify,create,delete /path/to/folder; do
rsync -rltzv --progress --chmod=0600 --exclude=.git/ --exclude=.vscode /path/to/folder [email protected]:~/remote/folder;
done;
Rsync запускается не только, когда я сохраняю файл в VSC, но и когда я его открываю. Это не критично, но раздражает и тратит пропускную способность.
Могу ли я что-нибудь с этим сделать?
Редактировать
Я не знаю, что вызвало это, но проблема, похоже, больше не возникает на моем компьютере с моими настройками. Но я ничего не менял
решение1
Вы отслеживаете слишком много событий[*]. События, которые имеют значение:
CLOSE_WRITE
, поскольку размещение данных в файлах требует их закрытия. Вы также можете считать, что файл находится в согласованном состоянии в этот момент.DELETE
, для файлов, которые удаленыMOVED_TO
,MOVED_FROM
для файлов, которые добавляются в дерево, перемещаются из него или просто переименовываются.
[*] Например, экспериментально, MODIFY
происходит много раз (вероятно, для каждой операции записи в файл) и копирование файла в этой точке может скопировать файл в несогласованном состоянии. Аналогично, OPEN
происходит, даже если вы не вносите никаких изменений позже.