metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-04-25 08:16 am

А вот как у вас модно

работать с системами контроля версий? Конкретно, с subversion, потому что в меркуриале и прочих DVCS можно хоть обкоммитится до одури - пока в другой репозиторий не закинешь, этого никто не увидит.

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

PS: В комментариях много советуют бранчи. Я почему-то никогда ими не пользовался, сначала в svn они были адом и мне лень было это осиливать, а сейчас как-то никогда не возникает надобности. Т.е. организация проекта и релизов как-то так получилась, что борьба с бранчами не стоит того.

[identity profile] jdevelop.livejournal.com 2010-04-25 08:47 am (UTC)(link)
как советовали выше, git поможет, но он уебански работает на винде по слухам

а если чисто svn - то коммитить в транк всякое говно, в ветку stable это говно потом сливать через тулзу svnmerge, которая костыль для уебанского мержа в свн - но работает

для больших кусков форкнуть бранч, поиздеваться там - и потом взад в транк

[identity profile] kurilka.livejournal.com 2010-04-25 08:54 am (UTC)(link)
Имхо кроме проблем с crlf (решаемых при наличии прямых рук) там ничего уебанского нет.
А так согласен - бранчи и ещё раз бранчи, и DVCS в этом смысле гораздо более логичная вещь (или такие есть централизованные VCS с удобными мерджами?).

[identity profile] blacklion.livejournal.com 2010-04-25 08:55 am (UTC)(link)
Не нужен в svn костыль уже, 1.6.x вполне хорошо нативно мерджит.

[identity profile] lionet.livejournal.com 2010-04-25 09:04 am (UTC)(link)
Судя по тому, каким образом это реализовано, грабли там только паутиной слегка присыпаны.

Легче уж бранчи с номерами ревизий в имени делать.

[identity profile] blacklion.livejournal.com 2010-04-25 09:06 am (UTC)(link)
Там, собственно, в ядро втянули то, что svnmerge делал снаружи до этого.

[identity profile] jdevelop.livejournal.com 2010-04-25 09:06 am (UTC)(link)
если ты про --reintegrate, тогда оно как бы и да, бранч целиком засосет за милую душу

а вот показать, какие ревизии уже есть в транке, а каких еще нет - оно увы, не сможет, или я не нашел

например такое действие

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

как это просто сделать в svn - я не знаю, но вот

svnmerge merge -r 1,3,4,11,25
работает отлично

[identity profile] blacklion.livejournal.com 2010-04-25 09:07 am (UTC)(link)
а вот показать, какие ревизии уже есть в транке, а каких еще нет - оно увы, не сможет, или я не нашел
svn propget svn:merge? :)
Собственно, в 1.6.x механизм svnmege внутри сидит.

[identity profile] jdevelop.livejournal.com 2010-04-25 09:19 am (UTC)(link)
а, то есть они взяли и прикрутили svnmerge

ну, костыль конечно, не знал

мы по старинке все

[identity profile] jdevelop.livejournal.com 2010-04-25 09:19 am (UTC)(link)
плюс есть svnmerge avail с ключиками -v, очень полезно тоже )

аналог есть?

[identity profile] slonopotamus.livejournal.com 2010-04-25 10:03 am (UTC)(link)
svn:merge - уродский и неработающий костыль.