Pull to refresh

Как исключить папку из синхронизации Яндекс.Диск 3.0?

Несомненно, что в современной IT-разработке необходимо использовать систему контроля версий, развёрнутую на внешних серверах. Однако, по тем или иным причинам (одиночный фриланс, дополнительное резервирование и т.п.) разработчики могут использовать также синхронизацию данных с облачным хранилищем.

Яндекс предлагает широкий перечень возможностей для синхронизации данных со своим облачным хранилищем и между различными устройствами. Однако, на момент написания статьи, программа Яндекс.Диск v3.2.19 не позволяет добавлять папки в игнор, чтобы не синхронизировать их с облаком.

Это приводит к тому, что программа Яндекс.Диск, помимо полезных исходников, постоянно пытается синхронизировать тысячи не нужных файлов в папках:

  • .vscode, .idea - временные файлы проектов IDE Visual Studio Code, PyCharm и т.д.;

  • node_modules - модули NodeJS;

  • venv - виртуальное окружение Python и т.д.

Также, во время одновременной работы над проектом и синхронизацией с облаком, может повреждаться виртуальное окружение Python и модули NodeJS, что исправляется только переустановкой всех зависимостей.

Одним из решений для пользователей Windows может быть использование программы Junction Link Magic.

Junction Link Magic – это простой инструмент, предназначенный для создания в Windows так называемых точек соединения, аналога символьных ссылок. 

С помощью этой программы можно связать пустую папку и папку с данными, расположенную в другом месте или даже на другом диске. При этом Windows начинает отображать пустую папку-ссылку как обычную папку с данными.

Например, такие точки соединения могут использоваться, чтобы сберечь SSD и вынести на другой HDD диск все временные файлы, кеш, историю, куки, временные файлы программ и т.д.

Чтобы исключить папку из синхронизации Яндекс.Диска необходимо:

  1. Рядом с папкой YandexDisk создать папку YandexIgnore

    иконка YandexIgnore изменена для удобства
    иконка YandexIgnore изменена для удобства
  2. В YandexIgnore для удобства поиска зеркально продублировать путь до проекта: YandexDisk\Work\Project -> YandexIgnore\Work\Project

  3. Перенести из папки YandexDisk в YandexIgnore все папки не требующие синхронизации (виртуальное окружение Python, модули NodeJS и т.д.)

  4. В YandexDisk на тех же местах создать пустые папки с аналогичным именем как у перенесённых папок

  5. В программе Junction Link Magic создать необходимые точки соединения папок

  6. Готово!

Программа Яндекс.Диск игнорирует такие точки соединения, поэтому после синхронизации в облаке останутся пустые папки, вместо большого количества ненужных файлов.

Если зайти в такую папку-ссылку, то будет казаться, что она содержит данные, хотя на самом деле все они лежат в YandexIgnore 

При этом, это не нарушает работу IDE, Python или NodeJS, всё работает! Среда разработки PyCharm после этого стала подсвечивать такие папки другой иконкой

Такой вариант исключения папки из синхронизации Яндекс.Диска оказался рабочим и не сильно сложным.

Но тем не менее надеюсь, что команда Яндекс.Диска в ближайшем будущем добавит в меню пункт "Оставить только на компьютере" или "Не синхронизировать" и т.п. 

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.