Подскажите, подойдет ли git для решения такой задачи
Всем доброго времени суток!
Имеется небольшая команда разработчиков, работающих над одной модульной системой. Каждый модуль является отдельным проектом(каталогом). Все разработчики в команде равны и могут как добавлять новые модули, так и модифицировать существующие, причем один разработчик может получить задачу на доработку модуля, изначально написанного и правленого многократно другими. Сейчас используется VSS таким образом: разработчик получил задание на модификацию определенного модуля, отгрузил его себе и заблокировал (check-in), поправил и отгрузил обратно (check-out). Одновременно один разработчик может в одно время блокировать и работать над несколькими проектами, в зависимости от приоритетов. Если какой-то из разработчиков (№2) получает задание на правку модуля, который уже редактируется другим (№1), при попытке check-in разработчик получает соответствующее сообщение о том, что файлы редактируются и кем. В этом случае №2 связывается с №1 выясняет и договаривается о том, когда файлы будут доступны. Т.е. 2 человека не смогут одновременно изменить одно и то же.
Можно. Пусть просто поговорят друг с другом и решат кто что делает.
Не нужно решать административные проблемы техническими мерами. Если у вас в проекте кому-то из разработчиков для номральной повседневной работы нужно блокировать целый *модуль*, то у вас что-то не так или с разработчиками, или с процессом, или с организацией дерева исходного кода.
Т.е. ответ «нет, в git так нельзя»?
Это нормальная ситуация, когда надо блокировать целый модуль (группу файлов). Модуль это не только исходники, это и ресурсы и шаблоны, так часто случается, что блокировать надо целый модуль. Мы не испытываем никаких проблем при таком подходе, который сейчас есть, поэтому мне непонятны ваши утверждения о том, что у нас что-то не правильно. Не могли бы вы пояснить, что конкретно вы имеете ввиду в своем утверждении, может нам правда надо что-то поменять? Пока не вижу
Просто говорят — плохой вариант. Разработчик — человек, при этом работает с несколькими проектами одновременно. Может просто забыть что-то отгрузить, до тех пор, пока не получит звонок
Я не знаю полностью ваш процесс, поэтому конкретный совет вам дать не могу. Из своего опыта могу сказать, что даже в проекте с несколькими миллионами строк и десятками разработчиков *конфликты* — очень редкая ситуация. (И это не тот случай, когда определённый файл может править только один человек — владение кодом общее.) Именно поэтому я считаю что у вас что-то не так, если вы испытываете необходимость в блокировании для избежания конфликтов.
Разработчик может работать на многих проектах — если их настолько много, что он может и *забыть* что где и как, то это *проблема*.
>>Разработчик — человек, при этом работает с несколькими проектами одновременно
Тем более, работал с VSS много лет назад, было весело вылавливать человека с отпуска или болезни чтобы он расчекинил файлик. Инструменты должны помогать, а не мешать. Ну забыл, сделает ребейс, поправит конфликты если будут и смержите. У нас больше сотни человек над одним проектом трудились, а пулл реквесты, особенно в ядро месяцами не мержились и ничего, когда подходила очередь всё смерживалось без особого гемора.
p.s. Из agile: Люди и взаимодействия важнее, чем процессы и инструменты; Так что gribozavr прав, у вас проблема в этом месте
AmdY,
у нас нет проблемы вылавливать человека с отпуска/болезни, у нас есть специальный человек (точнее 2), которые могут разлочить исходники в экстренном случае. Пока считаю VSS подходит больше, т.к. мысль о том, что время от времени придется разрешать конфликты мне не нравится
Если люди у вас работают над одним кодом, то вам в любом случае придётся конфликты. В случае с гитом, он в большинстве случаев всё смержит сам. В случае с локами, кому-то либо придтся ждать, либо реп разлочится, правки внесутся, а затем появится со своими праваками чел, который лочил файл. Вам в таком случае придётся решать два конфликта — вручную мержить правки, проведывать в больнице чувака который разлочил файл и доставил эротическое удовольствие ручного мержа челу, который справедливо ожидал что файл никто не тронет.
AmdY,
если человек попадает в больницу/уходит в отпуск с залоченным файлом, то если он может говорить — сам примет примет решение, стоит ли отгружать код в таком состоянии, как сейчас, чтобы с ним могли работать другие или просто разлочить исходник без отгрузки. Если не может, то решение примут без него. Это форс-мажорный случай, и больше никаких конфликтов не возникает, работаем так уже давно. А то, что вы описали, употребив слово «эротическое» git-пользователь может испытать при любой отгрузке своего исходника
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.