From mboxrd@z Thu Jan 1 00:00:00 1970 To: kde-russian@lists.kde.ru X-Exported-By: leafnode news-to-mail gateway (group mlist.kde.russian) From: "Nikita V. Youshchenko" Date: Wed, 29 May 2002 09:59:58 +0400 User-Agent: KNode/0.6.1 MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8Bit Message-ID: Subject: [kde-russian] Про "неработу" KDE из CVS Sender: kde-russian-admin@lists.kde.ru Errors-To: kde-russian-admin@lists.kde.ru X-BeenThere: kde-russian@lists.kde.ru X-Mailman-Version: 2.0.11 Precedence: bulk Reply-To: kde-russian@lists.kde.ru List-Help: List-Post: List-Subscribe: , List-Id: KDE russian translation mailing list List-Unsubscribe: , List-Archive: Archived-At: List-Archive: Прочитал про проблемы со сборкой CVS и Вспомнил. Вдруг кому интересно ... Когда (несколько месяцев назад) у меня висел сервис, пересобирающий KDE из CVS каждую ночь, я сталкивался с такой ситуацией. Происходила следующая последовательность событий. - делался cvs update, - cvs менялся, с соответствующей установкой времени модификаций файлов, - происходила сборка, - (на следующую ночь) происходил новый cvs update В результате время создания объектника оказывалось больше, чем время модификации файла (CVS при обновлении устанавливает в качестве времени модификации локального файла время соответствующего коммита), и при следующей сборке объектник не пересобирался. В результате, естественно, сегфолты. Лечится это либо чистой сборкой каждый раз (если ну очень быстрая машина), либо скриптом, обнаруживающим эту ситуацию и удаляющим устаревшие объектники. У меня висела такая штука: # Workaround commit-between-update-and-compile problem egrep "^P |^U " LOGS/update | awk '{print($2)}' | while read x; do dn=`dirname $x` bn=`basename $x` mbn=`echo $bn | sed 's/\(.*\)\..*/\1/'` if [ "$bn" != "$mbn" ]; then rm -f $dn/{,.libs/}$mbn.{o,lo}; fi done где в LOGS/update была выдача cvs update. Но это не совсем правильно, т.к. не отлавливает ситуацию, когде модифицирован хэдер, но не cpp-шник.