Способ развертывания из репозитория в SVN - PullRequest
0 голосов
/ 22 декабря 2009

мы 5 разработчиков, работающих в среде SVN. каждый программист может работать над небольшими ошибками и коммитить, когда захочет. после того, как работа сделана, я хочу дать им возможность развертывания в производство без учета других программистов и их развертывания. например: пока я делаю коммит, другой пользователь тоже коммит, но он не закончил коммит. его ревизии 1,3 мои ревизии 2,4

если я разверну ГОЛОВУ (4), я тоже разверну его работу. и я разверну 2 и 4, я также включу его файлы.

как я могу освободить каждого программиста для развертывания только его файлов?

Спасибо

Ответы [ 4 ]

1 голос
/ 22 декабря 2009

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

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

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

Развертывание на рабочем сервере без тегов заставляет меня нервничать.

0 голосов
/ 22 декабря 2009

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

0 голосов
/ 22 декабря 2009

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

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

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

Взгляните на Ветвление и слияние в svnbook.

0 голосов
/ 22 декабря 2009

Это действительно зависит от вашего метода развертывания. Если вы храните версионное дерево кодов в рабочей среде, то есть вы сделали svn checkout на своей рабочей машине, то самый простой способ сделать это - заставить программиста просто использовать svn update --revision REV в рабочей среде, где REV версия, которую программист хочет обновить.

Однако этот метод подвержен человеческим ошибкам.

Если каждому программисту нужно постоянно загружать разные версии программы, основанные на их собственном коде, без загрузки кода другого программиста, то я бы настроил каждого программиста с его собственной веткой. Программисты могут регистрироваться в своей собственной ветке в любое время, и когда они готовы перейти в рабочий режим, они могут объединить свою ветвь обратно в транк (или другую ветвь релиза), и транк может быть скопирован в производство через svn export или svn update. Этот тип процесса используется для гарантии того, что у вас всегда есть рабочая ветвь релиза, и особенно полезен, если у вас есть программисты, которые имеют привычку проверять код, который еще не сделан (то есть в конце каждого дня).

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