This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
ecosconfig, subversion and cygwin conflict
- From: "Fine, Paul" <Paul_Fine at dtccom dot com>
- To: "'ecos-discuss at ecos dot sourceware dot org'" <ecos-discuss at ecos dot sourceware dot org>
- Date: Fri, 31 Mar 2006 15:57:38 -0500
- Subject: [ECOS] ecosconfig, subversion and cygwin conflict
We have implemented a Subversion configuration control system for our
internal development, and we have put the eCos repository (a snapshot from
the day we decided to take a snapshot) into subversion. I have no issues at
all when running ecosconfig under linux, but I do have a problem when
running under cygwin.
Pasted below is a snippet of the error message that I get :
paufin@LPTPauFin ~/test
$ ecosconfig new dbwrevD
ecos.db, package CYGPKG_HAL: warning
Version subdirectory `.svn' does not have a CDL script `hal.cdl'.
ecos.db, package CYGPKG_INFRA: warning
Version subdirectory `.svn' does not have a CDL script `infra.cdl'.
ecos.db, package CYGPKG_IO: warning
Version subdirectory `.svn' does not have a CDL script `io.cdl'.
ecos.db, package CYGPKG_IO_SERIAL: warning
Version subdirectory `.svn' does not have a CDL script `io_serial.cdl'.
ecos.db, package CYGPKG_IO_CAN: warning
Version subdirectory `.svn' does not have a CDL script `io_can.cdl'.
ecos.db, package CYGPKG_DEVS_CAN_MCF52xx_FLEXCAN: warning
Version subdirectory `.svn' does not have a CDL script
`can_mcf52xx.cdl'. ecos.db, package CYGPKG_IO_CAN_LOOP: warning
Version subdirectory `.svn' does not have a CDL script `can_loop.cdl'.
The configuration runs to completion and the ecos.ecc that it generates is
fine, but I would like to get rid of the warning messages. Ecosconfig
obviously does not like the ".svn" directories that subversion puts in.
I tracked down in the host tools directory (libcdl, to be specific) where
the warning message is coming from, and it seemed obvious how to fix it.
Ecosconfig has code in two places which seems to take into account CVS (and
cvs) subdirectories, and ignores them.
Code snippet from database.cxx :
interp->locate_subdirs(pkgdir, subdirs);
for (i = 0; i < subdirs.size(); i++) {
if (("CVS" == subdirs[i]) || ("cvs" == subdirs[i])) {
continue;
}
I modified the if statement to say :
interp->locate_subdirs(pkgdir, subdirs);
for (i = 0; i < subdirs.size(); i++) {
if (("CVS" == subdirs[i]) || ("cvs" == subdirs[i]) ||
(".svn" == subdirs[i])) {
continue;
}
Code snippet from interp.cxx :
static char locate_subdirs_script[] = "\
set pattern [file join \"$::cdl_locate_subdirs_path\" *] \n\
set result {} \n\
foreach entry [glob -nocomplain -- $pattern] { \n\
if ([file isdirectory $entry]) { \n\
set entry [file tail $entry] \n\
if {($entry != \"CVS\") && ($entry != \"cvs\")} { \n\
lappend result $entry \n\
} \n\
} \n\
} \n\
return $result \n\
";
Which I changed the line with CVS to say
if {($entry != \"CVS\") && ($entry != \"cvs\") && ($entry !=
\".svn\")} { \n\
Unfortunately, when I ran this version of ecosconfig, I got no output at
all. No warnings. No errors. No ecos.ecc.
Do you have any suggestions on how to fix the warnings, or why my fixes did
not work?
Paul Fine
Principal Digital Communications Software Engineer
DTC Communications, Inc.
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss