I was wrong in my understanding. The svn command I quoted works very well. It has nothing to do with external though because the correct behaviour of ccnet is to detect the externals and then for each external see if there are modifications using the log command on the external repo. Thus, the problem is that my externals are not recognized by cc .net (or either not checked).
I found some strange piece of code inside the last version of ccnet (svn.cs, line 765). The external is checked for modifications only if it refers to a specific version of a repo. I asked the developers mailing-list about this behaviour. Hope this will help solve the problem, Benjamin 2010/11/9 Essl, Markus <[email protected]> > Hi! > > > > I do have a similar problem here, even with the latest 1.6 build (well, > from yesterday). But in my case, I have a couple of externals in one > directory, and it detects changes in some of them. So I think the externals > parser is flawed (there was a change in the svn:externals syntax in 1.4 and > 1.5). > > > > Anyway, you are right that it is not possible to get the changes from the > “log”-command. This is why ccnet resolves the externals first (look for > propget –R svn:externals). You can actually see the output in the server log > files (via the dashboard). When I looked for a parser, I saw that SharpSVN > should implement that (used by AnkhSvn). If I get the time, I will try to > look at that. > > > > Markus > > > > > > > > *From:* [email protected] [mailto:[email protected]] *On > Behalf Of *Benjamin Baumann > *Sent:* Monday, November 08, 2010 4:01 PM > *To:* [email protected] > *Subject:* [ccnet-user] Svn externals and build triggering > > > > Hi all, > > I have a problem with svn externals. My cc .Net server does not seem to > detect updates on the externals and thus not starting the build. > Here is my source control block : > > <executable>C:\Program Files\CollabNet Subversion > Client\svn.exe</executable> > <checkExternals>True</checkExternals> > <checkExternalsRecursive>True</checkExternalsRecursive> > <trunkUrl>svn://***</trunkUrl> > <username>***</username> > <password>***</password> > > My external is declared as follows : > svn:externals ../CrmBusiness/PaymentXrmObjects PaymentXrmObjects > > And the repository tree is : > CrmBusiness > CrmBusiness > CrmFramework > (...) > PaymentXrmObjects > OgoneXrm > OgoneXrmFactory > (...) > PaymentXrmObjects (external from > ../CrmBusiness/PaymentXrmObjects) > > When I make a change in my CrmBusiness/PaymentXrmObjects directory, the > CrmBusiness CCnet project is triggered (OK). But the OgoneXrm CCnet project > is not triggered (KO). > Across the log I've found the following command that is used to check > modifications : > svn log -r "{2010-11-07T09:03:53Z}:{2010-11-08T14:35:44Z}" > --verbose --xml --no-auth-cache --non-interactive > Afaik, it's impossible to check modification on externals via svn log, or > am I missing something? > > I'm running ccnet 1.5.7256.1, svn on the build server is at version 1.5.5. > > Do I have to specify my externals in cc.net? What does the checkExternals > property? > > Any help is greatly appreciated! > With kind rewards, > Benjamin Baumann >
