Обнаружил оппортюнитю. В мире, оказывается, нету нормальной широко распространенной build system/SCM. Замечательные в своей непостижимости autotools просто непригодны ни на чем кроме юникса, не менее замечательный CMake просто халтурно сделан - у него отличная идея и где-то примерно на треть хороший дизайн, а две трети дизайна и реализация просто мусор. qmake пригоден для использования только в коммерческой версии Qt и кроме того весьма ограничен в возможностях.
Я сильно подозреваю что купив за десять тыщ мильенов фунтов долларов какой-нибудь перфорс я получу такую же помойку, только еще и без исходников.
Либо это никому не надо, либо до сих пор никто не нагнулся и не поднял с земли деньги.
Compliance test для любой билдовой системы: напишите "makefile" в ней, который позволит собрать из одних исходников в один проход статическую и динамическую библиотеку под линукс. А отдельный проход под виндами соберет статическую и динамическую библиотеку под венды. Если тест пройден, сделайте тоже самое, но со сборкой промежуточной convenience library.
Мы в результате остановились на CMake + autotools для того, на что CMake просто непригоден.
Я сильно подозреваю что купив за десять тыщ мильенов фунтов долларов какой-нибудь перфорс я получу такую же помойку, только еще и без исходников.
Либо это никому не надо, либо до сих пор никто не нагнулся и не поднял с земли деньги.
Compliance test для любой билдовой системы: напишите "makefile" в ней, который позволит собрать из одних исходников в один проход статическую и динамическую библиотеку под линукс. А отдельный проход под виндами соберет статическую и динамическую библиотеку под венды. Если тест пройден, сделайте тоже самое, но со сборкой промежуточной convenience library.
Мы в результате остановились на CMake + autotools для того, на что CMake просто непригоден.
Re: p4
Date: 2006-12-15 09:03 pm (UTC)Я имею ввиду следующее. У меня есть 2 параллельные ветки. Скажем, current и stable. Изменения вносятся в обе, причем часто независимо. Время от времени надо перенести изменения (часто кучкой) из одной ветки в другую.
Я хочу, чтобы source control понимал, какие изменения уже перенесены, а какие нет.
Насколько я понимаю, P4 так не умеет. А умеет он вместо того следующее: перенести изменения из ветки A в ветку B от версии 1.0 до версии 1.2, и запомнить, что B теперь уже отбранчена от 1.2, а не от 1.0, как было раньше.
Я не прав?
P.S. Вот Git, насколько я понимаю из его описания, делает это именно таким методом, как я описал. Насколько я понимаю его устройство, в Git'е по большому счету вообще нет такого объекта как файл. А первичным является именно изменение. Файл как таковой - это не более чем точка в истории файла (последовательность изменений, которая довела файл из небытия до такой жизни). Поэтому именно в плане работы с изменениями Git очень гибок.
Но это все мои домыслы - я его сам не щупал, только пару статей про него прочитал :-)
Re: p4
Date: 2006-12-18 08:43 am (UTC)Тут, что называется, show me the code:
http://www.finnov.net/~ank/p4.txt
Проще, чем описывать словами.
Коротко, если я во время интеграции что-то подправил руками, или изменения были сделаны в отдельной ветке, то в следующий раз они для интеграции предлагаться не будут. Что удобно.
Интеграцию отдельного changelist показывать не стал, но там все очень похоже.