Использование Dropbox для синхронизации файлов и их резервное копирование в системе контроля версий - PullRequest
3 голосов
/ 24 марта 2012

Я использую Dropbox для случайных текстовых заметок (режим орг) и файлов точек, которые я загружаю, а именно

  1. часть моей инициализации bash
  2. конфигурация emacs
  3. vim configuration

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

Существует множество сообщений о том, почему использование git может привести к сбою в dropbox.

Я вижу несколько вариантов:

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

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

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

  4. Возможно сочетание № 1 и № 2.Иногда отправлять мои изменения на удаленный компьютер, если каталог .git не синхронизирован.

1 Ответ

1 голос
/ 24 марта 2012

Вы можете использовать Dropbox, но не для полного Git-репо (из-за большого количества файлов для синхронизации и риска для поврежденного репо, если хотя бы один из этих файлов не будет синхронизирован должным образом, как показано в "" Git ref master теперь пуст, как восстановить?").

Я предпочитаю использовать dropbox в сочетании с git-репо bundle (т.е. один файл ):
Смотрите « Git with Dropbox » и « Резервное копирование локального репозитория Git ».
Подробный анализ см. В этом сообщении в блоге .

Вы можете увидеть пример сценария для такого рода задач здесь (пример shtirlic (Serg Podtynnyi) ):

#!/usr/bin/env ruby
if __FILE__ == $0
        bundle_name = ARGV[0] if (ARGV[0])
        bundle_name = `pwd`.split('/').last.chomp if bundle_name.nil?
        bundle_name += ".git.bundle"
        puts "Backing up to bundle #{bundle_name}"
        `git bundle create ~/Dropbox/backup/git-repos/#{bundle_name} --all`
end
...