Thanks Bill. I was wondering whether that could potentially be a problem....
I've run the hg log command and wrapped the template option in quotes. However when I've run the command from a console and checked the validity of the XML I can find no problem characters and nothing appears to be invalid (if i run the command in a console without the quotes i get "< was unexpected at this time"). You said you wrapped the template option in quotes which returned XML which the Exortech.NetReflector parser can parse. How would i go about this? Jim On Aug 3, 3:50 pm, Bill Barry <[email protected]> wrote: > I suspect you have an invalid character in your log for a commit that it > is trying to parse. > > I did a somewhat nasty trick to get hg log output formatted in an easy > to parse manner: > hg log --template > "<modification><node>{node|short}</node><author>{author|user}</author><date>{date|rfc822date}</date><desc>{desc|escape}</desc><rev>{rev}</rev><email>{author|email|obfuscate}</email><files>{files}</files></modification>" > > This gets hg to output "pseudo-xml" which I then parsed with the > Exortech.NetReflector parser. > > Try finding the invalid character that caused this and then we can see > what can be done. > > jim_offroadcode wrote: > > Wondering if anyone can point me in the direction of a solution for > > this problem. > > > We've been using Cruisecontrol.Net for some time now. Recently we > > switched our source control from SVN to Mercurial and haven't had too > > many problems until now. > > > We started getting this error message when building one of our > > projects. It seems to be having trouble parsing the Mercurial history. > > However i don't have much experience with the internals of > > CruiseControl.NEt and am not sure where to start looking. > > > System.Xml.XmlException: An error occurred while parsing EntityName. > > Line 41, position 25588. at > > System.Xml.XmlTextReaderImpl.Throw(Exception e) at > > System.Xml.XmlTextReaderImpl.Throw(String res, String arg) at > > System.Xml.XmlTextReaderImpl.Throw(String res) at > > System.Xml.XmlTextReaderImpl.ParseEntityName() at > > System.Xml.XmlTextReaderImpl.ParseEntityReference() at > > System.Xml.XmlTextReaderImpl.Read() at > > System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) at > > System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) at > > System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean > > preserveWhitespace) at System.Xml.XmlDocument.Load(XmlReader reader) > > at Exortech.NetReflector.Util.XmlUtil.ReadNode(XmlReader reader) at > > Exortech.NetReflector.NetReflectorReader.Read(XmlReader reader) at > > Exortech.NetReflector.NetReflectorReader.Read(TextReader reader) at > > Exortech.NetReflector.NetReflectorReader.Read(String xml) at > > Exortech.NetReflector.NetReflector.Read(String xml) at > > ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.MercurialHistoryParser.Parse(TextReader > > history, DateTime from, DateTime to) at > > ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.ParseModifications(ProcessResult > > result, DateTime from, DateTime to) at > > ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial.GetModifications(IIntegrationResult > > from, IIntegrationResult to) at > > ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl > > sourceControl, IIntegrationResult lastBuild, IIntegrationResult > > thisBuild) at > > ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult > > from, IIntegrationResult to) at > > ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest > > request) > >
