Полная версия этой страницы:
Вопрос по GIT'у
Захотел (кривые руки вынудили) для себя организоват систему контроля версий. Раньше пробывал SVN - не поперло. Попробывал GIT - вроде всё нормально, с кодом и с личными проектами.
Но захотел так же на него перевести еще один проект, но его разрабатывают несколько человек и в нём много бинарных файлов.
Вопрос, есть ли в неём поддержка блокировки (или уведомление других пользователей) файлов, если кто то взял файл на редактирование? Или как это можно реализовать в GIT'е?
andrew_b
Oct 6 2011, 07:35
Никак. В распределённой системе каждый имеет полную копию репозитория. И делает там всё, что хочет. Естественно, другие об этом ничего не знают. До тех пор, пока не придёт время делать push/fetch/merge.
Цитата(andrew_b @ Oct 6 2011, 11:35)
Никак. В распределённой системе каждый имеет полную копию репозитория. И делает там всё, что хочет. Естественно, другие об этом ничего не знают. До тех пор, пока не придёт время делать push/fetch/merge.
Может, кто сталкивался с подобной проблемой, как её решали? Поделитесь опытом, только не надо советовать централизованную систему, интересно как раз на GIT'е.
А тут что централизованная система, что распределённая, в любом случае при попытке модификации одного файла более чем одним человеком имеем проблему.
Нужно как-то договариваться, например поделить проект на части и каждый может модифицировать только свою часть, а в случае необходимости испрашивает у "хозяина" разрешение устно, мэйлом или по телефону.
Отчасти помогает отщепление отдельных веток (в которых каждый делает что хочет и никому не мешает) с последующим слиянием.
Andrey Pesoshin
Oct 9 2011, 20:22
на уровне гита вы вряд ли добьетесь запрета редактирования файлов. Можно его конечно удалить из репозитория и добавить в гитигнор, но тогда о версионном контроле это файла речь не идет. Это можно взять и за правило - удалил файл из репы - условно заблокировал его. Остальные члены команды уславливаются, что перед редактированием бинарного файла нужно пуллиться.
Также можно каждый раз переопределять бинарник в удаленной репе своей отредактированной копией, тем самым при необходимости разрешая конфликты.
Ну и конечно, это нужно делать не в мастере, а в отдельной общей веточке от мастера вроде development.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.