9

Я хочу настроить хранилище синхронизации, которое будет похоже на Dropbox.

Цели / Требования:

  1. Бесплатно (Open Source очень желательно)
  2. Хост Linux (возможно, Ubuntu)
  3. Клиенты Windows/Mac/Linux
  4. Потенциал для нескольких пользователей с ограниченным доступом (необязательно)
  5. Предпочтительнее легко, не обязательно должно быть автоматическим
  6. Ревизия очень предпочтительна

По сути, я хочу иметь возможность использовать несколько компьютеров, возможно, с разными ОС, и иметь возможность доступа, использования и синхронизации файлов на всех из них. Я также хочу иметь локальную копию репозитория, когда я не подключен к сети (как будто я работаю на ноутбуке, я хочу сохранить локальный репозиторий, чтобы сохранить ревизию, и объединить позже с "главным" репозиторием ).

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

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

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

6 ответов6

7

Я бы предложил Git. Просто настройте различные репозитории для ваших финансовых данных и ваших «общих» данных. Доступ предоставляется через SSH.

5

Для Subversion у вас может быть локальное хранилище - просто создайте его локально, и все готово. Затем вы можете регулярно синхронизироваться с удаленным репо, используя svnsync. Или сделайте наоборот, используйте удаленное репо и синхронизируйте локально (как я делаю для резервных копий).

Svn хорошо обрабатывает двоичные файлы, или, по крайней мере, так же, как и любой другой SCM. Проблема с двоичными файлами состоит в том, что их трудно различить, это не ошибка в SVN, а просто свойство двоичных файлов.

Git или Mercurial (или Bazaar) звучат более подходящими для ваших нужд, поскольку они являются распределенными SCM, так как вы постоянно работаете с локальным репо, а затем вносите изменения в удаленное репо. Mercurial, вероятно, лучше всего подходит для Windows, поскольку у вас есть хорошие инструменты с графическим интерфейсом; Базар является одним из разработанных Canonical и Git Линусом. Это все различия между ними, которые кого-то волнуют :) В Интернете есть сравнения - кроме git, который не является родной Windows, Mercurial, вероятно, лучше, так как он поддерживает больше «то, что у вас есть, то, что есть у удаленных пользователей», тогда как Git это скорее «то, что у удаленных пользователей есть то, что вы им даете», что потребует от вас больше усилий с учетом ваших требований (оба, конечно, могут совместно использовать все или подмножества, но Mercurial проще иметь подмножество ограниченным, чем оно есть). для Git, чтобы поделиться всем)

Если вы хотите использовать «оба», вы можете использовать git-svn или SVK, которые добавляют распределенную функциональность в SVN.

3

Может быть, вы хотите попробовать http://www.sparkleshare.org/ Недавнее обсуждение этого можно найти по адресу http://apps.ycombinator.com/item?id=1424299.

1

Есть ли конкретная причина, почему Dropbox не будет работать для вас? Он охватывает все в вашем списке функций с добавлением поддержки мобильных устройств. Не уверен, что вы сможете найти "простую" систему контроля версий, которая хорошо справляется с двоичными файлами.

Если вы решите использовать Git, вот интересный пост о размещении ваших репозиториев Git в Dropbox:

http://intranation.com/entries/2010/02/using-dropbox-git-repository/

Этот метод должен работать и с репозиториями Mercurial и Subversion.

1

Я думаю, что подрывной путь - это путь.
Он полностью поддерживается на многих платформах, и среди прочего существуют хорошие клиенты для Windows, Mac и Linux .

1

iFolder. Проверьте его возможности, чтобы узнать, что вы ищете. (У него нет контроля версий, поэтому, если эта функция обязательна, iFolder - не то, что вам нужно.)

Вы просто сохраняете свои файлы локально, как вы всегда это делали, и iFolder автоматически обновляет файлы на сетевом сервере и доставляет их на другие компьютеры, которые вы используете.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .