А вот как у вас модно
работать с системами контроля версий? Конкретно, с subversion, потому что в меркуриале и прочих DVCS можно хоть обкоммитится до одури - пока в другой репозиторий не закинешь, этого никто не увидит.
Я как-то склоняюсь к "сделал независимый мелкий кусок - тут же закомитил", даже если там пару букв всего поменялось. Т.е. билд стараться не ломать принципиально, но накапливать изменения на "один огромный коммит на всю фичу" не хочу.
PS: В комментариях много советуют бранчи. Я почему-то никогда ими не пользовался, сначала в svn они были адом и мне лень было это осиливать, а сейчас как-то никогда не возникает надобности. Т.е. организация проекта и релизов как-то так получилась, что борьба с бранчами не стоит того.
Я как-то склоняюсь к "сделал независимый мелкий кусок - тут же закомитил", даже если там пару букв всего поменялось. Т.е. билд стараться не ломать принципиально, но накапливать изменения на "один огромный коммит на всю фичу" не хочу.
PS: В комментариях много советуют бранчи. Я почему-то никогда ими не пользовался, сначала в svn они были адом и мне лень было это осиливать, а сейчас как-то никогда не возникает надобности. Т.е. организация проекта и релизов как-то так получилась, что борьба с бранчами не стоит того.
no subject
Т.е. c svn и без бранчей как-то легче для мозга - я точно знаю что история линейна, без ответвлений и слияний. А вот с бранчами может получится живая изгородь с шипами :)
no subject
Т.е. если соблюдать правило, что публичные коммиты должны быть крупнозернистыми, осмысленными и относительно mainline, то проблем не возникает.
По моему, проблема когда на один бранч делаеются десятки коммитов от нескольких разработчиков типа
Опять же, с бранчами пропадает необходимость в code freeze, которые приходится объявлять на недосистемах типа CVS.
Т.е. фриз - он теперь только в мозгу того, кто за релиз отвечает: перстал мержить изменения на свой бранч, отдал тестировщикам и всё. Остальные могут продолжать работать дальше, их никак это все не касается.
no subject
Да нет, все нормально, несколько элементарных правил - и никакого бардака.
no subject
no subject
Если бы вы сказали, какой рода бардак вам видится в такой ситуации, я бы вам привел конкретные меры, позволяющие его избежать.
no subject
Потеря кода при и отсутствие возможности отмотки назад при разработке, при редких коммитах (коммитить только работающий код)
Гиморой с рефакторингом (переименования)
Наличие смешных code freeze, как воркараундов вокруг убогости инструментария
no subject
Что такое неатомарные коммиты? Я так понял, это серия нескольких связанных коммитов... но как они ведут к бардаку?
[ Потеря кода при и отсутствие возможности отмотки назад при разработке, при редких коммитах (коммитить только работающий код) ]
Решение проблемы: коммитить сколь угодно часто, но не коммитить тот файл, который включает сырой код в общую сборку. В результате на вашем компе собирается сырой код, на остальных - старый, стабильный.
[ Гиморой с рефакторингом (переименования) ]
Просто удаляем файл и закоммичиваем новый. Это вызовет трудность отследить, какой файл был его прообразом, но такая трудность не относится к "бардаку".
[ Наличие смешных code freeze, как воркараундов вокруг убогости инструментария ]
Что такое code freeze?
no subject
2. Сырой код или не сырой --- определяется тестированием. Определяют, это соответственно, уже после включения всех изменений в релизную ветку и прогона тестов. Не сломались тесты --- значит не сырой. Ну и куча мусорных коммитов в общей ветке --- это именно бардак, а управлять коммитами в CVS способа нету.
3. Потеря истории --- это и есть бардак в чистом виде.
4. Про code freeze --- без комментариев.
А решение одно: если принять решение о выбрасывании CVS на уровне организации воли нету, что говорит о том, что у руля стоят совершенно замшелые пни, то выкинуть его локально, и для себя пользоваться чем-то вроде git-cvs, и в общий реп коммитить уже более-менее осмысленными кусками.
no subject
В результате конфликт трудно не заметить, так как вывод не загроможден лишним текстом.
2. Ну так в чем бардак то?
3. Это просто лозунг. По-вашему - бардак, по-моему - мелочь.
4. As you wish :)
Пни не замшелые, просто CVS не настолько критичный инструмент, чтобы возиться с его заменой.
no subject
2. Бардак в том, что разработчик или вынужден не коммитить до последнего, тормозя свою разработку и рискуя потерять изменения, либо коммитить мусор (бессмысленные мелкозернистые коммиты) в основную ветку
3. Ну все мелочь по сравнению с тепловой смертью вселенной, кто же спорит.
4. Ну информация как бы не секретная, термин распространенный. Если сталкиваться не приходилось, то какой смысл обсуждать.
Замена CVS хотя бы на SVN --- вопрос одного-двух дней. А отсутствия нормального контроля версий скорее всего говорит о практически отсутствующем управлении релизами. Что прискорбно.
no subject
2. Я же объяснил, как это преодолевается - коммитите, просто в сборку не включаете.
3. :)
4. Это моя слабость - плохо запоминаю звучные термины. Так что может и сталкивался с чем-то похожим, но не знаю, что это называется именно так.
[ Замена CVS хотя бы на SVN --- вопрос одного-двух дней. ]
Плюс время привыкания к глюкам нового инструмента - N дней. И через сколько те 1-2 дня + N дней окупятся? И ради чего огород городить? Инструмент то не ключевой - не компилятор какой-нибудь.
no subject
Насчет глюков хотелось бы подробнее. Как бы этими инструментами пользуются миллионы человек ежедневно, врядли вот новые пользователи прямо сходу придут и обнаружат на повержности какие-то прямо глюки, до них никем не виданные. Если только глюки в своих головах.
SVN практически не отличается от CVS, только сделан чуть более по-человечески. Так что особенно привыкать не к чему.
Окупаться начнет не использование нового контроля версий, а более упорядоченная разработка. Например, за счет того, что меньше станет тратиться времени на борьбу с особенностями инструментария.
no subject
Здесь я имею в виду специфические трудности, которые возникают при работе с данным инструментом и к которым надо приноровиться, понять, как с ними дешево бороться. Ну как невозможность легко отследить переименование в CVS - наверняка в "черепашке" есть свои подобные заморочки.
[ Окупаться начнет не использование нового контроля версий, а более упорядоченная разработка. ]
Я это понимаю. Вопрос в том, за сколько оно окупится. В наших проектах выгода неочевидна. Была бы очевидна - перескочили бы со свистом. По сравнению с ежедневным переключением с C++ на Java потом на Delphi потом обратно - это не проблема.
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
Да, но изменения могут быть согласованными вот по этим трём файлам. И если у вас есть момент когда ДВА файла с новым контентом УЖЕ в репозитории а третий — нет (потому что конфликт и вы пол-часа его исправляете) — это очень, очень плохо.
no subject
Если серьезно, то длительная задержка - большая редкость, а короткая ни на ком не сказывается.
no subject
Т.е. вы даже про repocopy не знаете? :)
no subject
Да куда нам, мы ж люди темные :)
no subject
no subject
Мне с гитом, видимо, придётся сталкиваться,
надо бы потихоньку смотреть матчасть.
no subject
Производственная необходимость?
no subject
Нет, пока необходимости нет, но есть вероятность, что она появится.
Да и статейка неплохая, хоть и слишком git-специфична, как мне показалось.
no subject
no subject
Поэтому мне статья и понравилась ;-)
Про git-специфичное, это я про примеры.