Синхронизация проектов при помощи SparkleShare
Главной проблемой при использовании облачного хранилища для синхронизации фронт-энд (или, например, проектов на Node.js) проектов между компьютерами, в отличии от VCS, является то, что в облако загружается огромная куча мусора в виде сторонних библиотек, логов, временных файлов и т. д. В общем, всё то, что при использовании VCS мы обычно добавляем в игнор. По размерам обычно это не так много, но вот количество не нужных файлов бывает огромным. А все мы знаем как медлительны облачные хранилища с загрузкой большого количества маленьких файлов. Куда как быстрее проинсталировать всё необходимое для проекта заново, чем ждать пока оно выгрузится из облака.
Долгое время я мирился с «медленностью» Dropbox. Однако клиент Dropbox сильно загружает систему, заставляя кулер моего макбука шуметь как китайский фен. Попытка перенести всё в облако Mail.ru (оно значительно быстрее Dropbox и кроме того, я успел обзавестись там бесплатным 1TB) продлилась три дня и вынудила искать более радикальные решения. И в этот момент я вспомнил про небольшой проект, который несколько лет назад попался мне на глаза, но не произвёл на меня тогда должного впечатления.
Если стоит выбор между удобством облачного хранилища и гибкостью VCS, почему бы не объединить всё это в одно целое? И вот тут на помощь нам приходит SparkleShare. Эта утилита превращает любые удалённые Git-репозитории в облачные хранилища. При этом, так как в основе принципа работы использован всё же Git, можно совершенно спокойно добавить в репозиторий файл .gitignore и исключить весь мусор, который так досаждал вам всё это время. При этом, как и Dropbox, SparkleShare отслеживает любые изменения в папке или на сервере и автоматически их синхронизирует. Вот так просто: создаёте репозиторий на каком-нибудь Bitbucket и добавляете в клиент. Причём репозиториев можно добавлять много.
Плюсы
- Скорость загрузки несравнимо выше чем у обычного «облака», так как при изменении файлов, на сервер загружается не файл, а его разница с предыдущей версией.
- Можно добавлять много репозиториев, каждый из которых будет синхронизировать по отдельности.
- Можно использовать
.gitignoreдля управления исключениями. - При помощи не хитрого скрипта, можно поднять свой собственный сервер с репозиториями (например на NAS).
- Всегда быстро и легко можно откатить нужные файлы, используя все преимущества Git.
- Клиент общается с удалёнными репозиториями через SSH.
- Всё это бесплатно.
Минусы
- Клиент имеет довольно ограниченный функционал: он умеет только добавлять новые репозитории и отображать статус синхронизации.
- Нет практически никаких настроек (чтобы изменить корневую папку, например, придётся вручную изменить файл настроек).
- Удалённый репозиторий прописывается клиентом как
origin. - Иногда, если закомитить проект вручную, клиент перестаёт следить за изменениями (это не точно).
- Использование Git не располагает для загрузки файлов больших размеров.
- Разработка SparkleShare идёт медленно и урывками неравнодушными энтузиастами.