Как / Где создать резервную копию локальной проверки DVCS между отправками на сервер? - PullRequest
3 голосов
/ 21 июля 2010

Делаете ли вы (и ваша команда) резервные копии ваших локальных проверок вашего репозитория DVCS (Git, Mercurial) между нажатиями?Как ты это делаешь?Если бы ваш жесткий диск вышел из строя после написания набора кода, который еще не был стабилен (поэтому еще не сдвинут), как бы вы вернули его?

Ответы [ 3 ]

4 голосов
/ 21 июля 2010

Я параноик.

Помимо нашего центрального хранилища (настроенного на git init --shared --bare), у меня есть еще одно хранилище mirror , настроенное на сетевом диске:

cd /network/drive
git init --bare
cd /local/repo
git remote add backup --mirror /network/drive
git push backup

Я просто время от времени нажимаю на backup, и, поскольку это зеркальное хранилище, по сути, это просто полный клон моего локального хранилища.

2 голосов
/ 22 июля 2010

Да, вы должны использовать обычную систему резервного копирования между вашими коммитами.

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

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

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

0 голосов
/ 21 июля 2010

Забавно, что вы задали этот вопрос, потому что на прошлой неделе у меня было собрание, на котором я слышал, что некоторые люди используют commit / push не запускаемый и даже не компилируемый код в авторитетном хранилище просто для его сохранения! (Примечание: это отличается от того, что говорит Марк). Мне это показалось настолько неправильным и настолько мешающим непрерывной интеграции, что мы решили установить сервер резервного копирования на основе rsync, чтобы разработчики поняли, насколько эффективны инструменты контроля версий и резервного копирования!

Я еще не установил сервер, но если у вас есть запасной компьютер Unix с запущенным на нем ssh-сервером, простой crontab может выполнить эту работу, например, используя ssh и rsync (если у вас есть смонтированный по NFS раздел, это было бы даже проще):

$ crontab -l
# m h  dom mon dow   command
0,15,30,45 * * * * if `ping -c 1 machine.domaine.com
> /dev/null 2> /dev/null` ; then export SSH_AGENT_PID=
"`pgrep -l ssh-agent | cut -d' ' -f1`" ; export SSH_AUTH_SOCK=
"`/usr/bin/find /tmp -path '*ssh-*' -type s -user name -group
gname -name '*agent*' 2> /dev/null`" ; /usr/bin/rsync -avz -e ssh
--quiet /home/name/src name@machine.domain.com:/home/name/backup/src ; fi

(я предполагаю, что вы можете войти в систему с помощью ssh, что у вас запущен ssh-agent и вы использовали ssh-add).

Таким образом, каждые 15 минут текущая работа сохраняется, и поскольку rsync довольно быстро выясняет, что изменилось, это не должно замедлять работу вашей рабочей станции. В случае, если ваш диск аварийно завершает работу, просто войдите в machine.domain.com, используйте свои учетные данные с резервной копией :-) и продолжайте работу ...

Надеюсь, это поможет.

Приветствия
Christophe.

= Безопасность - это в основном суеверия. Это не существует в природе. - Хелен Келлер =

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...