Распределенные Системы управления версиями продвигают слабые резервные привычки?

В DVCS у каждого разработчика есть весь репозиторий на их рабочей станции, которой они могут фиксировать все свои изменения. Затем они могут объединить свой repo с чужим или клонировать его, или безотносительно (насколько я понимаю, я не пользователь DVCS).

Мне, который отмечает побочный эффект того, чтобы быть более уязвимым для упущения скопировать. В традиционной централизованной системе и Вы как разработчик и ответственные люди знаете, что, если Вы фиксируете что-то, она держалась центральный сервер, который может иметь в распоряжении достойные решения для резервного копирования.

Но с помощью DVCS, кажется, что только необходимо продвинуть работу к серверу, когда Вы испытываете желание совместно использовать его. Это очень хорошо, у Вас есть repo локально, таким образом, можно работать над ответвлением функции в течение месяца, не беспокоя никого, но это означает (я думаю), что регистрация в коде к repo недостаточно, необходимо не забыть делать регулярные нажатия к поддержанному серверу.

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

Действительно ли какое-либо из этого является реальной проблемой?

8
задан Mr. Boy 31 March 2010 в 09:12
поделиться

4 ответа

Я могу понять вашу озабоченность по поводу того, что разработчики забывают резервные копии, как только их локальный дифф исчезает (потому что они фиксированы локально) и перестают придираться к ним с обильным выводом. Я думаю, что решение может заключаться в лучших инструментах, инструментах moar!Вы можете настроить задание cron в каждом поле разработчика, которое перемещает каждый последний достижимый объект в их репозитории в центральный репозиторий и помещает их в центральном (резервном) репозитории с помощью ветвей с пространством имен. Я думаю, что «git push» может сделать это, учитывая правильный рефспект. Тогда все, что вы не делаете, это влияете на состояние ваших государственных филиалов.

Но действительно ли вам нужен такой же агрессивный процесс резервного копирования, как и раньше, когда репозиторий существовал только в одном месте? С DVCS вам нужна гораздо более высокая категория катастроф, чтобы потерять весь ваш код. Теперь вам нужен астероид или бомба, поразивший ваш офис (и всех членов вашей команды за пределами площадки), а не просто жесткий диск или RAID-контроллер. Заметьте, я не выступаю за неряшливость; Я выступаю за равный риск при меньших затратах.

2
ответ дан 6 December 2019 в 00:55
поделиться

В большинстве мест, я полагаю, все еще существует "центральное" хранилище, из которого делаются сборки и передаются на тестирование. Если вы хотите, чтобы ваш код был в сборке, он должен быть выложен централизованно.

Это также вопрос управления - скажите своей команде, что нужно регулярно (по крайней мере, ежедневно) выкладывать код, чтобы он был в резервной копии. Если это не делается, то достаньте большую палку.

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

0
ответ дан 6 December 2019 в 00:55
поделиться

Я не думаю, что у вас есть автоматизм по этому поводу. Распределенная или централизованная VCS может быть объединена с резервным копированием (или нет). Все дело в дисциплине в команде.

То же самое и с сообщениями о фиксации. Если у команды есть дисциплина, чтобы регулярно отправлять изменения в нужные репозитории, у вас тоже может быть рабочий список рассылки фиксации.

Плохие привычки также могут расти в команде с централизованной системой контроля версий. Всегда нужно бороться с вредными привычками.

1
ответ дан 6 December 2019 в 00:55
поделиться

Наличие локальной копии репозитория может побудить к плохим привычкам резервного копирования, если что-то не так. Однако для вашего главного репозитория СЛЕДУЕТ делать резервную копию.

«Локальная копия всего репозитория» имеет гораздо более важное применение, чем резервная копия. Это сокращает задержку при изучении истории кодовой базы - скажем, по сравнению с последней версией - от поездки туда и обратно по сети до поездки на ваш локальный жесткий диск.

Это не так уж важно, если ваш основной репозиторий находится в вашей гигабитной локальной сети. Если вы надомник и репозиторий находится на расстоянии 600+ мс по VPN, это имеет огромное значение.

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

Редактировать: Относительно комментария Джона о том, что длительный эксперимент был потерян из-за того, что он не был готов к фиксации в главном репозитории: работайте в отдельной ветке и регулярно отправляйте свои изменения в мастер. Вы по-прежнему получаете все преимущества работы с локальным репозиторием (в основном, для меня очень низкая задержка), и при этом не раздражаете своих коллег своей недоработанной функцией ... и вы все равно можете сохранять свои изменения на своей машине в место, где ваш администратор может правильно сделать резервную копию репозитория.

0
ответ дан 6 December 2019 в 00:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: