Git в качестве системы удаленного резервного копирования и обновления - PullRequest
1 голос
/ 09 декабря 2010

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

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

Тем не менее, у меня все еще есть проблема: как сохранить «маленький» удаленный репозиторий? Я хотел бы каким-то образом удалить ревизии, которые я уже получил на локальном сервере, но сохранить историю на локальном сервере.

Я попытался с помощью git filter branch и repack, но он ломает любые клоны. Я полагаю, что то же самое с git rebase --interactive, с добавленной проблемой, требующей ручного редактирования файла (т.е. изменение выбора -> squash).

Может, каждый раз создавать новые ветки и удалять их?

Ответы [ 2 ]

1 голос
/ 09 декабря 2010

Если вас беспокоит использование свободного места для хранилища в удаленной системе, я бы посоветовал вообще не использовать Git в удаленной системе.

Возможно, рассмотрите возможность использования rsync для синхронизации между локальной и удаленной системами.Для сохранения истории в локальной системе вы можете зафиксировать Git-репозиторий в локальной системе после каждого rsync.Таким образом, у вас есть резервная копия с полной историей в локальной системе и вообще без истории на удаленном.

0 голосов
/ 09 декабря 2010

Git довольно излишний, когда вы можете просто ежедневно поворачивать файлы журналов и выполнять rsync / scp, удаляя только что скопированные файлы (кроме текущего файла журнала, в который все еще могут быть записаны файлы).

...