CVS/SVN очередь коммитов
От: stormgt  
Дата: 12.07.08 17:05
Оценка:
Приветствую!
Возникла необходимость организовать очередь коммитов,
т.е. чтобы предовратить одновременный коммит несколькими пользователями.
процесс мне видится так: пользователи создают запросы на коммит.
cvs admin разрешает коммит пользователю, отправившему запрос первым.
если админ разрешил коммит определённому пользователю,
то он и только он может коммитить изменения до тех пор,
пока не будет удалён из очереди.

Подскажите, плиз,существуют ли готовые решения для cvs/svn, позволяющие реализовать вышеописанную процедуру?

Заранее спасибо за ответы.
Re: CVS/SVN очередь коммитов
От: Cyberax Марс  
Дата: 12.07.08 17:08
Оценка:
Здравствуйте, stormgt, Вы писали:

S>Подскажите, плиз,существуют ли готовые решения для cvs/svn, позволяющие реализовать вышеописанную процедуру?

http://www.jetbrains.com/teamcity/delayed_commit.html ?
Sapienti sat!
Re: CVS/SVN очередь коммитов
От: rlabs Россия  
Дата: 12.07.08 17:26
Оценка:
Здравствуйте, stormgt, Вы писали:

S>Возникла необходимость организовать очередь коммитов,

S>т.е. чтобы предовратить одновременный коммит несколькими пользователями.

А можно в двух словах — зачем это?
Alex Nikulin
Yota Lab
Re[2]: CVS/SVN очередь коммитов
От: Cyberax Марс  
Дата: 12.07.08 17:42
Оценка:
Здравствуйте, rlabs, Вы писали:

S>>т.е. чтобы предовратить одновременный коммит несколькими пользователями.

R>А можно в двух словах — зачем это?
Для code review или тестов, скорее всего.
Sapienti sat!
Re[2]: CVS/SVN очередь коммитов
От: stormgt  
Дата: 12.07.08 17:48
Оценка:
Здравствуйте, rlabs, Вы писали:

R>А можно в двух словах — зачем это?


Хочу решить две проблемы:
во-первых, обеспечить атомарность коммита.
Т.е. один человек коммитит багфикс.
после этого прогоняются тесты и строится билд.
если билд свалился или тесты не прошли, то очевидно, кто сломал всё

и вторая проблема. есть несколько junior developer'ов. и есть senior.
junior'ы могут коммитить тогда и только тогда, если senior разрешит.
Re[2]: CVS/SVN очередь коммитов
От: stormgt  
Дата: 12.07.08 17:59
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>http://www.jetbrains.com/teamcity/delayed_commit.html ?


спасибо за линк. Их Pre-tested Commit — это одна из задач, которую мне нужно решить.
Re[3]: CVS/SVN очередь коммитов
От: Хитрик Денис Россия RSDN
Дата: 12.07.08 20:08
Оценка: 6 (1)
Здравствуйте, stormgt, Вы писали:

S>и вторая проблема. есть несколько junior developer'ов. и есть senior.

S>junior'ы могут коммитить тогда и только тогда, если senior разрешит.

А не проще научить junior'ов пользоваться branch'ами? И пусть senior даёт отмашку на merge.
Правила нашего с вами форума.
Как правильно задавать вопросы. © 2001 by Eric S. Raymond; перевод: © 2002 Валерий Кравчук.
Re[3]: CVS/SVN очередь коммитов
От: rlabs Россия  
Дата: 12.07.08 22:13
Оценка: +1
Здравствуйте, stormgt, Вы писали:
R>>А можно в двух словах — зачем это?
S>Хочу решить две проблемы:
S>во-первых, обеспечить атомарность коммита.
S>Т.е. один человек коммитит багфикс.
S>после этого прогоняются тесты и строится билд.
S>если билд свалился или тесты не прошли, то очевидно, кто сломал всё:)
Это и так очевидно, глядя на список изменений и на их авторов.

S>и вторая проблема. есть несколько junior developer'ов. и есть senior.

S>junior'ы могут коммитить тогда и только тогда, если senior разрешит.
Идя таким путем, вы никогда не вырастите из джуниоров инженеров. Когда тебе не доверяют — ты не будешь ответственно относиться к своей работе.
Alex Nikulin
Yota Lab
Re[3]: CVS/SVN очередь коммитов
От: Cyberax Марс  
Дата: 12.07.08 22:16
Оценка:
Здравствуйте, stormgt, Вы писали:

S>Хочу решить две проблемы:

S>во-первых, обеспечить атомарность коммита.
Кстати, а вот для этого лучше использовать SVN или им подобные. Тем более, что в SVN1.5 наконец-то добавили merge tracking.
Sapienti sat!
Re[4]: CVS/SVN очередь коммитов
От: Cyberax Марс  
Дата: 12.07.08 22:17
Оценка:
Здравствуйте, rlabs, Вы писали:

S>>junior'ы могут коммитить тогда и только тогда, если senior разрешит.

R>Идя таким путем, вы никогда не вырастите из джуниоров инженеров. Когда тебе не доверяют — ты не будешь ответственно относиться к своей работе.
Code review — это вполне нормальная практика. Более того, это ХОРОШАЯ практика, так как позволяет отлавливать многие ошибки junior'ов пока они ещё не попали в репозиторий.
Sapienti sat!
Re[5]: CVS/SVN очередь коммитов
От: rlabs Россия  
Дата: 12.07.08 22:27
Оценка: -1
Здравствуйте, Cyberax, Вы писали:

S>>>junior'ы могут коммитить тогда и только тогда, если senior разрешит.

R>>Идя таким путем, вы никогда не вырастите из джуниоров инженеров. Когда тебе не доверяют — ты не будешь ответственно относиться к своей работе.
C>Code review — это вполне нормальная практика. Более того, это ХОРОШАЯ практика, так как позволяет отлавливать многие ошибки junior'ов пока они ещё не попали в репозиторий.
В плане текущего момента — да. В плане личного роста — нет, ибо приучает к раздолбайству.
еще раз повторюсь (подробнее об этом где-то в Peopleware надо читать): нет доверия — нет ответственности.
Alex Nikulin
Yota Lab
Re[6]: CVS/SVN очередь коммитов
От: Cyberax Марс  
Дата: 12.07.08 22:40
Оценка:
Здравствуйте, rlabs, Вы писали:

C>>Code review — это вполне нормальная практика. Более того, это ХОРОШАЯ практика, так как позволяет отлавливать многие ошибки junior'ов пока они ещё не попали в репозиторий.

R>В плане текущего момента — да. В плане личного роста — нет, ибо приучает к раздолбайству.
Нет. С точностью "до наоборот". Если джуниор знает, что его код никто не будет смотреть, то он может временами подсовывать халтуру, на которую никто долго не наткнётся. Даже вполне неосознанно.

Зато когда он знает, что его код будут смотреть, а за халтуру настучат по ушам — то это весьма дисциплинирует.

R>еще раз повторюсь (подробнее об этом где-то в Peopleware надо читать): нет доверия — нет ответственности.

Ты доверишь курсанту в автошколе обучаться без инструктора?
Sapienti sat!
Re[5]: CVS/SVN очередь коммитов
От: Pzz Россия https://github.com/alexpevzner
Дата: 13.07.08 00:54
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Code review — это вполне нормальная практика. Более того, это ХОРОШАЯ практика, так как позволяет отлавливать многие ошибки junior'ов пока они ещё не попали в репозиторий.


Я не вижу причин, почему нельзя делать code review не до, а после коммита.

Надо лишь требовать с юниоров (и не только с юниоров), чтобы коммиты не ломали билд и уже работающую функциональность. По крайней мере, не ломали совершенно очевидным образом, неочевидным кто угодно может сломать.
Re[6]: CVS/SVN очередь коммитов
От: Cyberax Марс  
Дата: 13.07.08 01:12
Оценка:
Здравствуйте, Pzz, Вы писали:

C>>Code review — это вполне нормальная практика. Более того, это ХОРОШАЯ практика, так как позволяет отлавливать многие ошибки junior'ов пока они ещё не попали в репозиторий.

Pzz>Я не вижу причин, почему нельзя делать code review не до, а после коммита.
Работу остальных программистов в случае поломки не будет задерживать.

Pzz>Надо лишь требовать с юниоров (и не только с юниоров), чтобы коммиты не ломали билд и уже работающую функциональность. По крайней мере, не ломали совершенно очевидным образом, неочевидным кто угодно может сломать.

Часть неочевидностей как раз reviewer заметит.
Sapienti sat!
Re[7]: CVS/SVN очередь коммитов
От: Pzz Россия https://github.com/alexpevzner
Дата: 13.07.08 01:17
Оценка:
Здравствуйте, Cyberax, Вы писали:

Pzz>>Я не вижу причин, почему нельзя делать code review не до, а после коммита.

C>Работу остальных программистов в случае поломки не будет задерживать.

Ну если коммит совсем плохой, можно и rollback сделать. Содержательно при этом ничего не теряется, все же есть уже в history сорс контрола.

C>Часть неочевидностей как раз reviewer заметит.


Желательно, однако, чтобы новый код попадал в оборот как можно раньше — это позволяет обнаружить находящиеся в нем ошибки (прошедшие сквозь rewiew или тесты при их наличии). А если review делается до коммита, это будет не так.
Re[8]: CVS/SVN очередь коммитов
От: Cyberax Марс  
Дата: 13.07.08 01:27
Оценка:
Здравствуйте, Pzz, Вы писали:

C>>Работу остальных программистов в случае поломки не будет задерживать.

Pzz>Ну если коммит совсем плохой, можно и rollback сделать. Содержательно при этом ничего не теряется, все же есть уже в history сорс контрола.
Угу, и тратим вместо нескольких минут времени одного reviewer'а по нескольку минут времени многих девелоперов.

C>>Часть неочевидностей как раз reviewer заметит.

Pzz>Желательно, однако, чтобы новый код попадал в оборот как можно раньше — это позволяет обнаружить находящиеся в нем ошибки (прошедшие сквозь rewiew или тесты при их наличии). А если review делается до коммита, это будет не так.
Почему? Новичок делает checkin, reviewer'ам приходит по почте оповещение, они смотрят через некоторое короткое время. Если что — сразу же по ушам бьют юниора.
Sapienti sat!
Re: CVS/SVN очередь коммитов
От: Aquary Россия https://wmspanel.com/
Дата: 13.07.08 03:24
Оценка: 22 (2)
Здравствуйте, stormgt, Вы писали:

S>Возникла необходимость организовать очередь коммитов,v т.е. чтобы предовратить одновременный коммит несколькими пользователями.


Возможно, может показаться резкостью, однако не могу не удивиться тому, как народ пытается вернуться в каменный век... Почему — потому что эта задача давно известна в СМе (configuration management'е) и имеет опробованное годами решение — создание веток (бранчей, branches), как уже сказал в этой ветке Денис Хитрик.

Т.е. вместо того, чтобы уберегать юзера от коммита — его нужно поощрять к этому, но! коммит должен делаться не на HEAD (CVS) или trunk (SVN), а на отдельный бранч!

Вот здесь я привел краткое описание того, как обычно идет работа с бранчами в команде
Автор: Aquary
Дата: 22.08.07


Конечно, создание бранча — это лишняя пара команд, да и бранчи кто-то должен мержить вместе (СМщик или один из разработчиков) — однако лучшего решения тут нет.

Если есть вопросы по политике ведения бранчей или выпуска baselines (стабильных релизов) — обращайтесь.
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
configuration management cm branch svn cvs
Re[4]: CVS/SVN очередь коммитов
От: stormgt  
Дата: 13.07.08 06:33
Оценка:
Здравствуйте, Хитрик Денис, Вы писали:

ХД>А не проще научить junior'ов пользоваться branch'ами? И пусть senior даёт отмашку на merge.

а в чём принципиальная разница? ведь результат мержа тоже коммитить нужно.
Re[4]: CVS/SVN очередь коммитов
От: stormgt  
Дата: 13.07.08 06:39
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, stormgt, Вы писали:


S>>Хочу решить две проблемы:

S>>во-первых, обеспечить атомарность коммита.
C>Кстати, а вот для этого лучше использовать SVN или им подобные. Тем более, что в SVN1.5 наконец-то добавили merge tracking.
Согласен. про атомарность коммита я имел в виду CVS.
Re[2]: CVS/SVN очередь коммитов
От: stormgt  
Дата: 13.07.08 06:57
Оценка:
Здравствуйте, Aquary, Вы писали:

A>Вот здесь я привел краткое описание того, как обычно идет работа с бранчами в команде
Автор: Aquary
Дата: 22.08.07

Спасибо за линк.

A>Конечно, создание бранча — это лишняя пара команд, да и бранчи кто-то должен мержить вместе (СМщик или один из разработчиков) — однако лучшего решения тут нет.

согласен на счёт бранчей для каждого change request.
только мержить ветку, отрезанную для багфикса всё равно прийдётся на рабочую ветку.
А хочется контролировать этот процесс.
Или не заморачиваться с очередью коммитов и давать доступ на стабильную ветку некоторым товарищам?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.