Организация папок Source Control для распределенной команды - PullRequest
1 голос
/ 01 февраля 2011

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

Одним из решений, о котором я думал, было создание двух папок по одной для каждого места.Таким образом, любые скрипты, которые они загружают, мы будем копировать в наш собственный каталог и делать локальные изменения.Любые другие предложения?

Спасибо ...

Ответы [ 3 ]

2 голосов
/ 01 февраля 2011

У вас должен быть один репозиторий для хранения сценариев.Каждая модификация (локальной или удаленной командой) будет иметь версии.Изменения можно откатить.У вас будет история изменений и так далее.Несколько папок не позволяют использовать систему контроля версий.Конечно, у вас могут быть подпапки для логического разделения скриптов.

Если производительность сети является проблемой, вы можете посмотреть на распределенные системы контроля версий, такие как git или mercurial .

1 голос
/ 01 февраля 2011

Я не работал с SVN, но много работал с другими системами vcs и ...

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

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

Для универсализации ваших сценариев и т. Д. Создайте дерево папок для сценариев с общими /сайт А / сайт Б / структура.Разместите все скрипты для соответствующих сайтов в каталоге.Затем идентичные сценарии переносятся в «общие», удаляются из других и проверяются все. Конечная цель - перевести все сценарии в общую кодовую базу.Общая структура или шаблон де-локализации для достижения этого ускорят процесс.Вы найдете, как только первые несколько будут сделаны, остальные последуют очень быстро.Наличие отдельных каталогов позволяет легко различать локализации и исключать их.

Вы не хотите находиться в ситуации, когда пользователи должны постоянно объединять (тьфу!) И перезаписывать данные локализации для своей локали или, что еще хуже, делать это вручную после извлечения.Оптимально, при обновлении любых сценариев, они должны выполняться с целью устранения локализации, поэтому принимайте только обновления для общих, если нет смягчающих обстоятельств;также заставьте программу обновления обновлять ветки A и B при выполнении одной стороны.Вы обнаружите, что люди устали делать что-то дважды (и для чьей-либо пользы) и с готовностью начнут де-локализацию скриптов.

1 голос
/ 01 февраля 2011

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

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

Поскольку Рагурам , Git или Mercurial лучше подходят для этого сценария.

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