You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(142) |
Jun
(27) |
Jul
(122) |
Aug
(36) |
Sep
(59) |
Oct
(86) |
Nov
(140) |
Dec
(80) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(52) |
Feb
(153) |
Mar
(118) |
Apr
(143) |
May
(123) |
Jun
(64) |
Jul
(282) |
Aug
(469) |
Sep
(56) |
Oct
(201) |
Nov
(182) |
Dec
(31) |
| 2005 |
Jan
(229) |
Feb
(316) |
Mar
(187) |
Apr
(130) |
May
(190) |
Jun
(154) |
Jul
(148) |
Aug
(133) |
Sep
(209) |
Oct
(234) |
Nov
(100) |
Dec
(40) |
| 2006 |
Jan
(1) |
Feb
(87) |
Mar
(73) |
Apr
(126) |
May
(58) |
Jun
(8) |
Jul
(12) |
Aug
(14) |
Sep
(22) |
Oct
(33) |
Nov
(4) |
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
1
(13) |
2
|
3
(4) |
4
|
5
|
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
|
13
|
14
(27) |
15
(6) |
16
(22) |
17
(3) |
18
(11) |
19
|
|
20
|
21
|
22
|
23
(1) |
24
(4) |
25
|
26
|
|
27
(4) |
28
(4) |
29
(1) |
30
|
|
|
|
|
From: Owen R. <exo...@us...> - 2005-11-29 06:50:31
|
Update of /cvsroot/ccnet/ccnet/project/WebServiceProxy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30833/project/WebServiceProxy Modified Files: CCNetManagementProxy.cs Log Message: CCNET-625: converting ProjectActivity from an enum to a class (step 1) Index: CCNetManagementProxy.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebServiceProxy/CCNetManagementProxy.cs,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** CCNetManagementProxy.cs 11 Jul 2005 11:45:06 -0000 1.20 --- CCNetManagementProxy.cs 29 Nov 2005 06:50:22 -0000 1.21 *************** *** 40,44 **** return new ProjectStatus [] {new ProjectStatus((ProjectIntegratorState) serviceStatus.Status, (IntegrationStatus) serviceStatus.BuildStatus, ! (ProjectActivity) serviceStatus.Activity, serviceStatus.Name, serviceStatus.WebURL, --- 40,44 ---- return new ProjectStatus [] {new ProjectStatus((ProjectIntegratorState) serviceStatus.Status, (IntegrationStatus) serviceStatus.BuildStatus, ! new ProjectActivity(serviceStatus.Activity.ToString()), serviceStatus.Name, serviceStatus.WebURL, |
|
From: Owen R. <exo...@us...> - 2005-11-28 01:48:41
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests/CCTrayLib/Monitoring In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20378/project/UnitTests/CCTrayLib/Monitoring Modified Files: DashboardXmlParserTest.cs ProjectMonitorTest.cs Log Message: CCNET-625: converting ProjectActivity from an enum to a class (step 1) Index: ProjectMonitorTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/CCTrayLib/Monitoring/ProjectMonitorTest.cs,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** ProjectMonitorTest.cs 1 Nov 2005 17:56:00 -0000 1.9 --- ProjectMonitorTest.cs 28 Nov 2005 01:48:32 -0000 1.10 *************** *** 161,175 **** } ! private ProjectStatus CreateProjectStatus( ! IntegrationStatus integrationStatus, DateTime lastBuildDate) { ProjectStatus status = new ProjectStatus(); status.BuildStatus = integrationStatus; status.LastBuildDate = lastBuildDate; return status; } ! private ProjectStatus CreateProjectStatus( ! IntegrationStatus integrationStatus, ProjectActivity activity) { ProjectStatus status = new ProjectStatus(); --- 161,174 ---- } ! private ProjectStatus CreateProjectStatus(IntegrationStatus integrationStatus, DateTime lastBuildDate) { ProjectStatus status = new ProjectStatus(); status.BuildStatus = integrationStatus; status.LastBuildDate = lastBuildDate; + status.Activity = ProjectActivity.CheckingModifications; return status; } ! private ProjectStatus CreateProjectStatus(IntegrationStatus integrationStatus, ProjectActivity activity) { ProjectStatus status = new ProjectStatus(); *************** *** 187,191 **** CreateProjectStatus(IntegrationStatus.Success, ProjectActivity.Sleeping)); monitor.Poll(); - Assert.AreEqual(ProjectState.Success, monitor.ProjectState); --- 186,189 ---- *************** *** 193,197 **** CreateProjectStatus(IntegrationStatus.Exception, ProjectActivity.Sleeping)); monitor.Poll(); - Assert.AreEqual(ProjectState.Broken, monitor.ProjectState); --- 191,194 ---- *************** *** 199,203 **** CreateProjectStatus(IntegrationStatus.Failure, ProjectActivity.Sleeping)); monitor.Poll(); - Assert.AreEqual(ProjectState.Broken, monitor.ProjectState); --- 196,199 ---- *************** *** 205,209 **** CreateProjectStatus(IntegrationStatus.Unknown, ProjectActivity.Sleeping)); monitor.Poll(); - Assert.AreEqual(ProjectState.Broken, monitor.ProjectState); --- 201,204 ---- *************** *** 216,220 **** ProjectActivity.CheckingModifications)); monitor.Poll(); - Assert.AreEqual(ProjectState.Success, monitor.ProjectState); --- 211,214 ---- *************** *** 222,228 **** null); monitor.Poll(); - Assert.AreEqual(ProjectState.NotConnected, monitor.ProjectState); } --- 216,231 ---- null); monitor.Poll(); Assert.AreEqual(ProjectState.NotConnected, monitor.ProjectState); + } + [Test] + public void DoNotTransitionProjectStateForNewInstanceOfSameProjectActivity() + { + mockProjectManager.ExpectAndReturn("ProjectStatus", CreateProjectStatus(IntegrationStatus.Success, ProjectActivity.Building)); + monitor.Poll(); + Assert.AreEqual(ProjectState.Building, monitor.ProjectState); + mockProjectManager.ExpectAndReturn("ProjectStatus", CreateProjectStatus(IntegrationStatus.Success, new ProjectActivity(ProjectActivity.Building.ToString()))); + monitor.Poll(); + Assert.AreEqual(ProjectState.Building, monitor.ProjectState); } *************** *** 274,277 **** --- 277,281 ---- ProjectStatus status = new ProjectStatus(); status.BuildStatus = integrationStatus; + status.Activity = ProjectActivity.CheckingModifications; mockProjectManager.ExpectAndReturn("ProjectStatus", status); Index: DashboardXmlParserTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/CCTrayLib/Monitoring/DashboardXmlParserTest.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** DashboardXmlParserTest.cs 5 Oct 2005 09:42:11 -0000 1.1 --- DashboardXmlParserTest.cs 28 Nov 2005 01:48:32 -0000 1.2 *************** *** 14,18 **** { DashboardXmlParser parser = new DashboardXmlParser(); - parser.ExtractAsProjectStatus("<Projects />", "projectName"); } --- 14,17 ---- *************** *** 36,42 **** Assert.AreEqual("13", status.LastBuildLabel); Assert.AreEqual("http://mrtickle/ccnet/", status.WebURL); - } - } } \ No newline at end of file --- 35,39 ---- |
|
From: Owen R. <exo...@us...> - 2005-11-28 01:48:40
|
Update of /cvsroot/ccnet/ccnet/project/Remote In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20378/project/Remote Modified Files: ProjectActivity.cs Log Message: CCNET-625: converting ProjectActivity from an enum to a class (step 1) Index: ProjectActivity.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/Remote/ProjectActivity.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ProjectActivity.cs 3 Nov 2004 23:36:27 -0000 1.3 --- ProjectActivity.cs 28 Nov 2005 01:48:31 -0000 1.4 *************** *** 1,2 **** --- 1,4 ---- + using System; + namespace ThoughtWorks.CruiseControl.Remote { *************** *** 5,15 **** /// integration by CruiseControl.NET. /// </summary> ! public enum ProjectActivity { /// <summary> /// CruiseControl.NET is checking for modifications in this project's /// source control system. /// </summary> ! CheckingModifications, /// <summary> --- 7,60 ---- /// integration by CruiseControl.NET. /// </summary> ! [Serializable] ! public class ProjectActivity { + private readonly string type; + + public ProjectActivity(string type) + { + this.type = type; + } + + public bool IsBuilding() + { + return type == Building.type; + } + + public bool IsSleeping() + { + return type == Sleeping.type; + } + + public override bool Equals(object obj) + { + ProjectActivity other = obj as ProjectActivity; + return other != null && other.ToString() == ToString(); + } + + public override int GetHashCode() + { + return base.GetHashCode(); + } + + public override string ToString() + { + return type; + } + + public static bool operator == (ProjectActivity left, ProjectActivity right) + { + return Object.Equals(left, right); + } + public static bool operator != (ProjectActivity left, ProjectActivity right) + { + return !(left == right); + } + /// <summary> /// CruiseControl.NET is checking for modifications in this project's /// source control system. /// </summary> ! public static ProjectActivity CheckingModifications = new ProjectActivity("CheckingModifications"); /// <summary> *************** *** 17,21 **** /// integration. /// </summary> ! Building, /// <summary> --- 62,66 ---- /// integration. /// </summary> ! public static ProjectActivity Building = new ProjectActivity("Building"); /// <summary> *************** *** 23,27 **** /// for this project. /// </summary> ! Sleeping, } ! } --- 68,72 ---- /// for this project. /// </summary> ! public static ProjectActivity Sleeping = new ProjectActivity("Sleeping"); } ! } \ No newline at end of file |
|
From: Owen R. <exo...@us...> - 2005-11-28 01:48:39
|
Update of /cvsroot/ccnet/ccnet/project/CCTrayLib/Presentation In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20378/project/CCTrayLib/Presentation Modified Files: DetailStringProvider.cs Log Message: CCNET-625: converting ProjectActivity from an enum to a class (step 1) Index: DetailStringProvider.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/CCTrayLib/Presentation/DetailStringProvider.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** DetailStringProvider.cs 30 Sep 2005 16:11:14 -0000 1.5 --- DetailStringProvider.cs 28 Nov 2005 01:48:31 -0000 1.6 *************** *** 17,21 **** } ! if (projectStatus.Activity == ProjectActivity.Sleeping) { if (projectStatus.NextBuildTime == DateTime.MaxValue) --- 17,21 ---- } ! if (projectStatus.Activity.IsSleeping()) { if (projectStatus.NextBuildTime == DateTime.MaxValue) |
|
From: Owen R. <exo...@us...> - 2005-11-28 01:48:39
|
Update of /cvsroot/ccnet/ccnet/project/CCTrayLib/Monitoring In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20378/project/CCTrayLib/Monitoring Modified Files: DashboardXmlParser.cs ProjectMonitor.cs Log Message: CCNET-625: converting ProjectActivity from an enum to a class (step 1) Index: ProjectMonitor.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/CCTrayLib/Monitoring/ProjectMonitor.cs,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** ProjectMonitor.cs 1 Nov 2005 17:56:00 -0000 1.11 --- ProjectMonitor.cs 28 Nov 2005 01:48:30 -0000 1.12 *************** *** 73,77 **** return ProjectState.NotConnected; ! if (status.Activity == ProjectActivity.Building) return ProjectState.Building; --- 73,77 ---- return ProjectState.NotConnected; ! if (status.Activity.IsBuilding()) return ProjectState.Building; *************** *** 142,146 **** private void CheckForBuildStart(ProjectStatus lastProjectStatus, ProjectStatus newProjectStatus) { ! if (lastProjectStatus.Activity != ProjectActivity.Building && newProjectStatus.Activity == ProjectActivity.Building) { buildDurationTracker.OnBuildStart(); --- 142,146 ---- private void CheckForBuildStart(ProjectStatus lastProjectStatus, ProjectStatus newProjectStatus) { ! if (! lastProjectStatus.Activity.IsBuilding() && newProjectStatus.Activity.IsBuilding()) { buildDurationTracker.OnBuildStart(); Index: DashboardXmlParser.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/CCTrayLib/Monitoring/DashboardXmlParser.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** DashboardXmlParser.cs 5 Oct 2005 09:42:11 -0000 1.1 --- DashboardXmlParser.cs 28 Nov 2005 01:48:30 -0000 1.2 *************** *** 54,58 **** ProjectIntegratorState.Running, (IntegrationStatus) Enum.Parse(typeof(IntegrationStatus), project.lastBuildStatus), ! (ProjectActivity) Enum.Parse(typeof(ProjectActivity), project.activity), project.name, project.webUrl, --- 54,58 ---- ProjectIntegratorState.Running, (IntegrationStatus) Enum.Parse(typeof(IntegrationStatus), project.lastBuildStatus), ! new ProjectActivity(project.activity), project.name, project.webUrl, |
|
From: Owen R. <exo...@us...> - 2005-11-27 23:58:08
|
Update of /cvsroot/ccnet/ccnetlive In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27420 Modified Files: ccnet.config Log Message: increasing timeout for nant build Index: ccnet.config =================================================================== RCS file: /cvsroot/ccnet/ccnetlive/ccnet.config,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** ccnet.config 27 Nov 2005 23:26:13 -0000 1.20 --- ccnet.config 27 Nov 2005 23:57:57 -0000 1.21 *************** *** 365,368 **** --- 365,369 ---- <target>package</target> </targetList> + <buildTimeoutSeconds>6000</buildTimeoutSeconds> </nant> </tasks> |
|
From: Owen R. <exo...@us...> - 2005-11-27 23:26:23
|
Update of /cvsroot/ccnet/ccnetlive In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21139 Modified Files: ccnet.config Log Message: switching nant project to use the bootstrapped nant to run the nant build - fixing directory problem Index: ccnet.config =================================================================== RCS file: /cvsroot/ccnet/ccnetlive/ccnet.config,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** ccnet.config 27 Nov 2005 23:11:43 -0000 1.19 --- ccnet.config 27 Nov 2005 23:26:13 -0000 1.20 *************** *** 361,365 **** </exec> <nant> ! <executable>bootstrap\bin\nant.exe</executable> <targetList> <target>package</target> --- 361,365 ---- </exec> <nant> ! <executable>bootstrap\nant.exe</executable> <targetList> <target>package</target> |
|
From: Owen R. <exo...@us...> - 2005-11-27 23:11:54
|
Update of /cvsroot/ccnet/ccnetlive In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17509 Modified Files: ccnet.config Log Message: switching nant project to use the bootstrapped nant to run the nant build Index: ccnet.config =================================================================== RCS file: /cvsroot/ccnet/ccnetlive/ccnet.config,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** ccnet.config 27 Nov 2005 22:05:34 -0000 1.18 --- ccnet.config 27 Nov 2005 23:11:43 -0000 1.19 *************** *** 358,363 **** <tasks> <exec> ! <executable>b.bat</executable> </exec> </tasks> </project> --- 358,369 ---- <tasks> <exec> ! <executable>bootstrap.bat</executable> </exec> + <nant> + <executable>bootstrap\bin\nant.exe</executable> + <targetList> + <target>package</target> + </targetList> + </nant> </tasks> </project> |
|
From: Cruise C. .N. u. <ccn...@us...> - 2005-11-27 22:05:42
|
Update of /cvsroot/ccnet/ccnetlive In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3885 Modified Files: ccnet.config Log Message: Adding NAnt project to ccnetlive Index: ccnet.config =================================================================== RCS file: /cvsroot/ccnet/ccnetlive/ccnet.config,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** ccnet.config 17 Nov 2005 07:31:57 -0000 1.17 --- ccnet.config 27 Nov 2005 22:05:34 -0000 1.18 *************** *** 345,347 **** --- 345,365 ---- </tasks> </project> + + <project name="nant"> + <workingDirectory>e:\sourcecontrols\sourceforge\nant</workingDirectory> + <sourcecontrol type="cvs"> + <autoGetSource>true</autoGetSource> + <labelOnSuccess>false</labelOnSuccess> + <executable>e:\tools\cvsexe\cvs.exe</executable> + <webUrlBuilder type="viewcvs"> + <url>http://cvs.sourceforge.net/viewcvs.py/nant/nant</url> + </webUrlBuilder> + </sourcecontrol> + <tasks> + <exec> + <executable>b.bat</executable> + </exec> + </tasks> + </project> + </cruisecontrol> \ No newline at end of file |
|
From: Owen R. <exo...@us...> - 2005-11-24 07:07:16
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9601/project/UnitTests/Core/SourceControl Modified Files: Tag: RB_1_0 CvsHistoryParserTest.cs CvsMother.cs Log Message: CCNET-623 : fixing bug in regex that prevented lines from being recognised Index: CvsMother.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl/CvsMother.cs,v retrieving revision 1.4.2.1 retrieving revision 1.4.2.2 diff -C2 -d -r1.4.2.1 -r1.4.2.2 *** CvsMother.cs 7 Oct 2005 05:32:48 -0000 1.4.2.1 --- CvsMother.cs 24 Nov 2005 07:07:07 -0000 1.4.2.2 *************** *** 334,337 **** --- 334,361 ---- ============================================================================="; } + + public static string CvsModifiedFileExample() + { + return @"RCS file: /var/lib/cvs/test/file.txt,v + Working file: test/file.txt + head: 1.49 + branch: + locks: strict + access list: + symbolic names: + TEST2: 1.47.0.2 + TEST: 1.49 + test/: 1.44 + start: 1.1.1.1 + cb: 1.1.1 + keyword substitution: kv + total revisions: 52; selected revisions: 1 + description: + ---------------------------- + revision 1.49 + date: 2005/11/19 18:15:09; author: abc; state: Exp; lines: +2 -1; kopt: kv; commitid: 1b3d437f6bac72b4; filename: abc.c; + Test commit + ============================================================================="; + } } } \ No newline at end of file Index: CvsHistoryParserTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl/CvsHistoryParserTest.cs,v retrieving revision 1.4.2.1 retrieving revision 1.4.2.2 diff -C2 -d -r1.4.2.1 -r1.4.2.2 *** CvsHistoryParserTest.cs 7 Oct 2005 05:32:48 -0000 1.4.2.1 --- CvsHistoryParserTest.cs 24 Nov 2005 07:07:07 -0000 1.4.2.2 *************** *** 109,112 **** --- 109,122 ---- } + [Test] + public void VerifyModifiedFile() + { + TextReader input = new StringReader(CvsMother.CvsModifiedFileExample()); + Modification[] mods = cvs.Parse(input, CvsMother.OLDEST_ENTRY, CvsMother.NEWEST_ENTRY); + Assert.AreEqual(1, mods.Length); + Assert.AreEqual("modified", mods[0].Type); + } + + private DateTime CreateDate(string dateString) { |
|
From: Owen R. <exo...@us...> - 2005-11-24 07:07:16
|
Update of /cvsroot/ccnet/ccnet/project/core/sourcecontrol In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9601/project/core/sourcecontrol Modified Files: Tag: RB_1_0 CvsHistoryParser.cs Log Message: CCNET-623 : fixing bug in regex that prevented lines from being recognised Index: CvsHistoryParser.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/sourcecontrol/CvsHistoryParser.cs,v retrieving revision 1.10.2.1 retrieving revision 1.10.2.2 diff -C2 -d -r1.10.2.1 -r1.10.2.2 *** CvsHistoryParser.cs 7 Oct 2005 05:32:48 -0000 1.10.2.1 --- CvsHistoryParser.cs 24 Nov 2005 07:07:08 -0000 1.10.2.2 *************** *** 46,50 **** private string currentLine; private string workingFileName; - private Regex dateLineRegex = new Regex(@"date:\s+(?<date>\S+)\s+(?<time>\S+)\s*(?<timezone>\S*);\s+author:\s+(?<author>.*);\s+state:\s+(?<state>.*);(\s+lines:\s+\+(?<line1>\d+)\s+-(?<line2>\d+))?"); public Modification[] Parse(TextReader cvsLog, DateTime from, DateTime to) --- 46,49 ---- *************** *** 123,127 **** currentLine = reader.ReadLine(); ! modification.Comment = ParseComment(reader); } return modification; --- 122,126 ---- currentLine = reader.ReadLine(); ! modification.Comment = ParseComment(reader); } return modification; *************** *** 138,142 **** if (message.Length > 0) { ! message.Append(Environment.NewLine) ; } message.Append(currentLine); --- 137,141 ---- if (message.Length > 0) { ! message.Append(Environment.NewLine); } message.Append(currentLine); *************** *** 165,168 **** --- 164,169 ---- } + private Regex dateLineRegex = new Regex(@"date:\s+(?<date>\S+)\s+(?<time>\S+)\s*(?<timezone>\S*);\s+author:\s+(?<author>.*);\s+state:\s+(?<state>\S*);(\s+lines:\s+\+(?<line1>\d+)\s+-(?<line2>\d+))?"); + private void ParseDateLine(Modification modification, string dateLine) { |
|
From: Owen R. <exo...@us...> - 2005-11-24 07:00:06
|
Update of /cvsroot/ccnet/ccnet/project/core/sourcecontrol In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8419/project/core/sourcecontrol Modified Files: CvsHistoryParser.cs Log Message: CCNET-623 : fixing bug in regex that prevented lines from being recognised Index: CvsHistoryParser.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/sourcecontrol/CvsHistoryParser.cs,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** CvsHistoryParser.cs 7 Oct 2005 05:43:55 -0000 1.11 --- CvsHistoryParser.cs 24 Nov 2005 06:59:58 -0000 1.12 *************** *** 46,50 **** private string currentLine; private string workingFileName; - private Regex dateLineRegex = new Regex(@"date:\s+(?<date>\S+)\s+(?<time>\S+)\s*(?<timezone>\S*);\s+author:\s+(?<author>.*);\s+state:\s+(?<state>.*);(\s+lines:\s+\+(?<line1>\d+)\s+-(?<line2>\d+))?"); public Modification[] Parse(TextReader cvsLog, DateTime from, DateTime to) --- 46,49 ---- *************** *** 123,127 **** currentLine = reader.ReadLine(); ! modification.Comment = ParseComment(reader); } return modification; --- 122,126 ---- currentLine = reader.ReadLine(); ! modification.Comment = ParseComment(reader); } return modification; *************** *** 138,142 **** if (message.Length > 0) { ! message.Append(Environment.NewLine) ; } message.Append(currentLine); --- 137,141 ---- if (message.Length > 0) { ! message.Append(Environment.NewLine); } message.Append(currentLine); *************** *** 165,173 **** } private void ParseDateLine(Modification modification, string dateLine) { try { - Match match = dateLineRegex.Match(dateLine); modification.ModifiedTime = ParseModifiedTime(match.Groups["date"].Value, match.Groups["time"].Value); modification.UserName = match.Groups["author"].Value; --- 164,174 ---- } + private Regex dateLineRegex = new Regex(@"date:\s+(?<date>\S+)\s+(?<time>\S+)\s*(?<timezone>\S*);\s+author:\s+(?<author>.*);\s+state:\s+(?<state>\S*);(\s+lines:\s+\+(?<line1>\d+)\s+-(?<line2>\d+))?"); + private void ParseDateLine(Modification modification, string dateLine) { + Match match = dateLineRegex.Match(dateLine); try { modification.ModifiedTime = ParseModifiedTime(match.Groups["date"].Value, match.Groups["time"].Value); modification.UserName = match.Groups["author"].Value; |
|
From: Owen R. <exo...@us...> - 2005-11-24 07:00:06
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8419/project/UnitTests/Core/SourceControl Modified Files: CvsHistoryParserTest.cs CvsMother.cs Log Message: CCNET-623 : fixing bug in regex that prevented lines from being recognised Index: CvsMother.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl/CvsMother.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** CvsMother.cs 7 Oct 2005 05:43:55 -0000 1.5 --- CvsMother.cs 24 Nov 2005 06:59:58 -0000 1.6 *************** *** 334,337 **** --- 334,361 ---- ============================================================================="; } + + public static string CvsModifiedFileExample() + { + return @"RCS file: /var/lib/cvs/test/file.txt,v + Working file: test/file.txt + head: 1.49 + branch: + locks: strict + access list: + symbolic names: + TEST2: 1.47.0.2 + TEST: 1.49 + test/: 1.44 + start: 1.1.1.1 + cb: 1.1.1 + keyword substitution: kv + total revisions: 52; selected revisions: 1 + description: + ---------------------------- + revision 1.49 + date: 2005/11/19 18:15:09; author: abc; state: Exp; lines: +2 -1; kopt: kv; commitid: 1b3d437f6bac72b4; filename: abc.c; + Test commit + ============================================================================="; + } } } \ No newline at end of file Index: CvsHistoryParserTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl/CvsHistoryParserTest.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** CvsHistoryParserTest.cs 7 Oct 2005 05:43:55 -0000 1.5 --- CvsHistoryParserTest.cs 24 Nov 2005 06:59:58 -0000 1.6 *************** *** 109,112 **** --- 109,122 ---- } + [Test] + public void VerifyModifiedFile() + { + TextReader input = new StringReader(CvsMother.CvsModifiedFileExample()); + Modification[] mods = cvs.Parse(input, CvsMother.OLDEST_ENTRY, CvsMother.NEWEST_ENTRY); + Assert.AreEqual(1, mods.Length); + Assert.AreEqual("modified", mods[0].Type); + } + + private DateTime CreateDate(string dateString) { |
|
From: Owen R. <exo...@us...> - 2005-11-23 07:08:24
|
Update of /cvsroot/ccnet/ccnet/project/xsl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4344/project/xsl Modified Files: NAntTiming.xsl Log Message: CCNET-619 : nanttimings stylesheet enhancements - reapplying mike's changes Index: NAntTiming.xsl =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/xsl/NAntTiming.xsl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** NAntTiming.xsl 18 Nov 2005 04:08:03 -0000 1.4 --- NAntTiming.xsl 23 Nov 2005 07:08:16 -0000 1.5 *************** *** 2,5 **** --- 2,6 ---- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> + <xsl:param name="applicationPath"/> <xsl:template match="/"> *************** *** 13,22 **** { eDiv.style.display="block"; ! eImg.src="images/arrow_minus_small.gif"; } else { eDiv.style.display = "none"; ! eImg.src="images/arrow_plus_small.gif"; } } --- 14,23 ---- { eDiv.style.display="block"; ! eImg.src="<xsl:value-of select="$applicationPath"/>/images/arrow_minus_small.gif"; } else { eDiv.style.display = "none"; ! eImg.src="<xsl:value-of select="$applicationPath"/>/images/arrow_plus_small.gif"; } } *************** *** 75,79 **** <xsl:value-of select="generate-id()" /> </xsl:variable> ! <img src="images/arrow_plus_small.gif" alt="Toggle to see tasks in this target"> <xsl:attribute name="id"> <xsl:text>img-</xsl:text> --- 76,80 ---- <xsl:value-of select="generate-id()" /> </xsl:variable> ! <img src="{$applicationPath}/images/arrow_plus_small.gif" alt="Toggle to see tasks in this target"> <xsl:attribute name="id"> <xsl:text>img-</xsl:text> |
|
From: Owen R. <exo...@us...> - 2005-11-18 06:10:25
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests/Xsl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7705/project/UnitTests/Xsl Added Files: MsBuildSummaryStylesheetTest.cs Log Message: CCNET-620 : fixing stylesheet with a unit test - merging to head --- NEW FILE: MsBuildSummaryStylesheetTest.cs --- using System; using NUnit.Framework; namespace ThoughtWorks.CruiseControl.UnitTests.Xsl { [TestFixture] public class MsBuildSummaryStylesheetTest : StylesheetTestFixture { protected override string Stylesheet { get { return @"xsl\compile-msbuild.xsl"; } } [Test] public void ShouldNotRenderAnyOutputIfRootNodeIsMissing() { string xml = WrapInBuildResultsElement("<foo>bar</foo>"); string actualXml = LoadStylesheetAndTransformInput(xml); Assert.AreEqual("", actualXml); } [Test] public void ShouldRenderWarnings() { string xml = WrapInBuildResultsElement(@"<msbuild><warning file=""c:\temp\foo.txt"" line=""10"" column=""23"">Invalid behaviour.</warning></msbuild>"); string actualXml = LoadStylesheetAndTransformInput(xml); CustomAssertion.AssertContains(@"c:\temp\foo.txt", actualXml); CustomAssertion.AssertContains("(10,23)", actualXml); CustomAssertion.AssertContains("Invalid behaviour.", actualXml); } [Test] public void ShouldRenderErrors() { string xml = WrapInBuildResultsElement(@"<msbuild><error file=""c:\temp\foo.txt"" line=""10"" column=""23"">Invalid behaviour.</error></msbuild>"); string actualXml = LoadStylesheetAndTransformInput(xml); CustomAssertion.AssertContains(@"c:\temp\foo.txt", actualXml); CustomAssertion.AssertContains("(10,23)", actualXml); CustomAssertion.AssertContains("Invalid behaviour.", actualXml); } } } |
|
From: Owen R. <exo...@us...> - 2005-11-18 06:10:24
|
Update of /cvsroot/ccnet/ccnet/project/xsl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7705/project/xsl Modified Files: compile-msbuild.xsl Log Message: CCNET-620 : fixing stylesheet with a unit test - merging to head Index: compile-msbuild.xsl =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/xsl/compile-msbuild.xsl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** compile-msbuild.xsl 15 Aug 2005 16:40:11 -0000 1.1 --- compile-msbuild.xsl 18 Nov 2005 06:10:16 -0000 1.2 *************** *** 32,36 **** <tr> <td class="section-warn"> ! <xsl:apply-templates select="$warning.events"/> </td> </tr> --- 32,36 ---- <tr> <td class="section-warn"> ! <xsl:apply-templates select="$warnings"/> </td> </tr> |
|
From: Owen R. <exo...@us...> - 2005-11-18 06:10:23
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7705/project/UnitTests Modified Files: UnitTests.csproj Log Message: CCNET-620 : fixing stylesheet with a unit test - merging to head Index: UnitTests.csproj =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/UnitTests.csproj,v retrieving revision 1.163 retrieving revision 1.164 diff -C2 -d -r1.163 -r1.164 *** UnitTests.csproj 14 Nov 2005 04:23:41 -0000 1.163 --- UnitTests.csproj 18 Nov 2005 06:10:16 -0000 1.164 *************** *** 1452,1455 **** --- 1452,1460 ---- /> <File + RelPath = "Xsl\MsBuildSummaryStylesheetTest.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "Xsl\MsTestSummaryStylesheetTest.cs" SubType = "Code" |
|
From: Owen R. <exo...@us...> - 2005-11-18 05:37:24
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2215/project/UnitTests Modified Files: Tag: RB_1_0 UnitTests.csproj Log Message: CCNET-620 : fixing stylesheet with a unit test Index: UnitTests.csproj =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/UnitTests.csproj,v retrieving revision 1.150.2.6 retrieving revision 1.150.2.7 diff -C2 -d -r1.150.2.6 -r1.150.2.7 *** UnitTests.csproj 14 Nov 2005 03:42:31 -0000 1.150.2.6 --- UnitTests.csproj 18 Nov 2005 05:37:12 -0000 1.150.2.7 *************** *** 1418,1421 **** --- 1418,1426 ---- /> <File + RelPath = "Xsl\MsBuildSummaryStylesheetTest.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "Xsl\MsTestSummaryStylesheetTest.cs" SubType = "Code" |
|
From: Owen R. <exo...@us...> - 2005-11-18 05:37:24
|
Update of /cvsroot/ccnet/ccnet/project/xsl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2215/project/xsl Modified Files: Tag: RB_1_0 compile-msbuild.xsl Log Message: CCNET-620 : fixing stylesheet with a unit test Index: compile-msbuild.xsl =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/xsl/compile-msbuild.xsl,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -C2 -d -r1.1 -r1.1.2.1 *** compile-msbuild.xsl 15 Aug 2005 16:40:11 -0000 1.1 --- compile-msbuild.xsl 18 Nov 2005 05:37:12 -0000 1.1.2.1 *************** *** 32,36 **** <tr> <td class="section-warn"> ! <xsl:apply-templates select="$warning.events"/> </td> </tr> --- 32,36 ---- <tr> <td class="section-warn"> ! <xsl:apply-templates select="$warnings"/> </td> </tr> |
|
From: Owen R. <exo...@us...> - 2005-11-18 05:37:24
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests/Xsl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2215/project/UnitTests/Xsl Added Files: Tag: RB_1_0 MsBuildSummaryStylesheetTest.cs Log Message: CCNET-620 : fixing stylesheet with a unit test --- NEW FILE: MsBuildSummaryStylesheetTest.cs --- using System; using NUnit.Framework; namespace ThoughtWorks.CruiseControl.UnitTests.Xsl { [TestFixture] public class MsBuildSummaryStylesheetTest : StylesheetTestFixture { protected override string Stylesheet { get { return @"xsl\compile-msbuild.xsl"; } } [Test] public void ShouldNotRenderAnyOutputIfRootNodeIsMissing() { string xml = WrapInBuildResultsElement("<foo>bar</foo>"); string actualXml = LoadStylesheetAndTransformInput(xml); Assert.AreEqual("", actualXml); } [Test] public void ShouldRenderWarnings() { string xml = WrapInBuildResultsElement(@"<msbuild><warning file=""c:\temp\foo.txt"" line=""10"" column=""23"">Invalid behaviour.</warning></msbuild>"); string actualXml = LoadStylesheetAndTransformInput(xml); CustomAssertion.AssertContains(@"c:\temp\foo.txt", actualXml); CustomAssertion.AssertContains("(10,23)", actualXml); CustomAssertion.AssertContains("Invalid behaviour.", actualXml); } [Test] public void ShouldRenderErrors() { string xml = WrapInBuildResultsElement(@"<msbuild><error file=""c:\temp\foo.txt"" line=""10"" column=""23"">Invalid behaviour.</error></msbuild>"); string actualXml = LoadStylesheetAndTransformInput(xml); CustomAssertion.AssertContains(@"c:\temp\foo.txt", actualXml); CustomAssertion.AssertContains("(10,23)", actualXml); CustomAssertion.AssertContains("Invalid behaviour.", actualXml); } } } |
|
From: Owen R. <exo...@us...> - 2005-11-18 04:25:51
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16413/project/UnitTests/Core/SourceControl Modified Files: StarTeamTest.cs Log Message: CCNET-609 : get source for starteam sets the file modified time correctly -- merging to head Index: StarTeamTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl/StarTeamTest.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** StarTeamTest.cs 23 Jul 2005 21:45:03 -0000 1.3 --- StarTeamTest.cs 18 Nov 2005 04:25:42 -0000 1.4 *************** *** 50,54 **** { string args = starteam.GetSourceProcessArgs(); ! Assert.AreEqual("co -nologo -x -is -q -f NCO -p \"Admin:admin@10.1.1.64:49201/.NET LAB/CC.NET/starteam-ccnet\" \"*\"", args); } --- 50,54 ---- { string args = starteam.GetSourceProcessArgs(); ! Assert.AreEqual("co -nologo -ts -x -is -q -f NCO -p \"Admin:admin@10.1.1.64:49201/.NET LAB/CC.NET/starteam-ccnet\" \"*\"", args); } |
|
From: Owen R. <exo...@us...> - 2005-11-18 04:25:51
|
Update of /cvsroot/ccnet/ccnet/project/core/sourcecontrol In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16413/project/core/sourcecontrol Modified Files: StarTeam.cs Log Message: CCNET-609 : get source for starteam sets the file modified time correctly -- merging to head Index: StarTeam.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/sourcecontrol/StarTeam.cs,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** StarTeam.cs 6 Jul 2005 00:41:34 -0000 1.17 --- StarTeam.cs 18 Nov 2005 04:25:42 -0000 1.18 *************** *** 14,18 **** //stcmd hist -nologo -x -is -filter IO -p "userid:password@host:port/project/path" "files" internal readonly static string HISTORY_COMMAND_FORMAT = "hist -nologo -x -is -filter IO -p \"{0}:{1}@{2}:{3}/{4}/{5}\" "; ! internal readonly static string GET_SOURCE_COMMAND_FORMAT = "co -nologo -x -is -q -f NCO -p \"{0}:{1}@{2}:{3}/{4}/{5}\" "; public CultureInfo Culture = CultureInfo.CurrentCulture; --- 14,18 ---- //stcmd hist -nologo -x -is -filter IO -p "userid:password@host:port/project/path" "files" internal readonly static string HISTORY_COMMAND_FORMAT = "hist -nologo -x -is -filter IO -p \"{0}:{1}@{2}:{3}/{4}/{5}\" "; ! internal readonly static string GET_SOURCE_COMMAND_FORMAT = "co -nologo -ts -x -is -q -f NCO -p \"{0}:{1}@{2}:{3}/{4}/{5}\" "; public CultureInfo Culture = CultureInfo.CurrentCulture; |
|
From: Owen R. <exo...@us...> - 2005-11-18 04:21:16
|
Update of /cvsroot/ccnet/ccnet/project/core/sourcecontrol In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15054/project/core/sourcecontrol Modified Files: Tag: RB_1_0 StarTeam.cs Log Message: CCNET-609 : get source for starteam sets the file modified time correctly Index: StarTeam.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/sourcecontrol/StarTeam.cs,v retrieving revision 1.17 retrieving revision 1.17.2.1 diff -C2 -d -r1.17 -r1.17.2.1 *** StarTeam.cs 6 Jul 2005 00:41:34 -0000 1.17 --- StarTeam.cs 18 Nov 2005 04:20:56 -0000 1.17.2.1 *************** *** 14,18 **** //stcmd hist -nologo -x -is -filter IO -p "userid:password@host:port/project/path" "files" internal readonly static string HISTORY_COMMAND_FORMAT = "hist -nologo -x -is -filter IO -p \"{0}:{1}@{2}:{3}/{4}/{5}\" "; ! internal readonly static string GET_SOURCE_COMMAND_FORMAT = "co -nologo -x -is -q -f NCO -p \"{0}:{1}@{2}:{3}/{4}/{5}\" "; public CultureInfo Culture = CultureInfo.CurrentCulture; --- 14,18 ---- //stcmd hist -nologo -x -is -filter IO -p "userid:password@host:port/project/path" "files" internal readonly static string HISTORY_COMMAND_FORMAT = "hist -nologo -x -is -filter IO -p \"{0}:{1}@{2}:{3}/{4}/{5}\" "; ! internal readonly static string GET_SOURCE_COMMAND_FORMAT = "co -nologo -ts -x -is -q -f NCO -p \"{0}:{1}@{2}:{3}/{4}/{5}\" "; public CultureInfo Culture = CultureInfo.CurrentCulture; |
|
From: Owen R. <exo...@us...> - 2005-11-18 04:21:16
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15054/project/UnitTests/Core/SourceControl Modified Files: Tag: RB_1_0 StarTeamTest.cs Log Message: CCNET-609 : get source for starteam sets the file modified time correctly Index: StarTeamTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl/StarTeamTest.cs,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -C2 -d -r1.3 -r1.3.2.1 *** StarTeamTest.cs 23 Jul 2005 21:45:03 -0000 1.3 --- StarTeamTest.cs 18 Nov 2005 04:20:56 -0000 1.3.2.1 *************** *** 50,54 **** { string args = starteam.GetSourceProcessArgs(); ! Assert.AreEqual("co -nologo -x -is -q -f NCO -p \"Admin:admin@10.1.1.64:49201/.NET LAB/CC.NET/starteam-ccnet\" \"*\"", args); } --- 50,54 ---- { string args = starteam.GetSourceProcessArgs(); ! Assert.AreEqual("co -nologo -ts -x -is -q -f NCO -p \"Admin:admin@10.1.1.64:49201/.NET LAB/CC.NET/starteam-ccnet\" \"*\"", args); } |
|
From: Owen R. <exo...@us...> - 2005-11-18 04:08:12
|
Update of /cvsroot/ccnet/ccnet/project/xsl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10305/project/xsl Modified Files: NAntTiming.xsl Log Message: CCNET-619 : nanttimings stylesheet enhancements Index: NAntTiming.xsl =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/xsl/NAntTiming.xsl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** NAntTiming.xsl 16 Nov 2005 19:55:23 -0000 1.3 --- NAntTiming.xsl 18 Nov 2005 04:08:03 -0000 1.4 *************** *** 2,6 **** <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> - <xsl:param name="applicationPath"/> <xsl:template match="/"> --- 2,5 ---- *************** *** 14,23 **** { eDiv.style.display="block"; ! eImg.src="<xsl:value-of select="$applicationPath"/>/images/arrow_minus_small.gif"; } else { eDiv.style.display = "none"; ! eImg.src="<xsl:value-of select="$applicationPath"/>/images/arrow_plus_small.gif"; } } --- 13,22 ---- { eDiv.style.display="block"; ! eImg.src="images/arrow_minus_small.gif"; } else { eDiv.style.display = "none"; ! eImg.src="images/arrow_plus_small.gif"; } } *************** *** 58,62 **** <tr> <th align="left">Target</th> ! <th align="right">Duration (in seconds)</th> </tr> </thead> --- 57,61 ---- <tr> <th align="left">Target</th> ! <th align="right">Duration</th> </tr> </thead> *************** *** 76,80 **** <xsl:value-of select="generate-id()" /> </xsl:variable> ! <img src="{$applicationPath}/images/arrow_plus_small.gif" alt="Toggle to see tasks in this target"> <xsl:attribute name="id"> <xsl:text>img-</xsl:text> --- 75,79 ---- <xsl:value-of select="generate-id()" /> </xsl:variable> ! <img src="images/arrow_plus_small.gif" alt="Toggle to see tasks in this target"> <xsl:attribute name="id"> <xsl:text>img-</xsl:text> *************** *** 83,86 **** --- 82,86 ---- <xsl:attribute name="onclick">toggleDiv('img-<xsl:value-of select="$divId" />','<xsl:value-of select="$divId" />')</xsl:attribute> </img>  + <xsl:for-each select="ancestor::target"><xsl:value-of select="@name" />/</xsl:for-each> <xsl:value-of select="@name" /> <div> *************** *** 98,108 **** </div> </td> ! <td valign="top" align="right"><xsl:value-of select="format-number(duration div 1000,'##0.00')" /></td> </tr> </xsl:template> <xsl:template match="task"> ! <xsl:variable name="duration" select="format-number(duration div 1000,'##0.00')" /> ! <li><xsl:value-of select="@name" /> - <xsl:value-of select="$duration" /> seconds</li> </xsl:template> </xsl:stylesheet> \ No newline at end of file --- 98,117 ---- </div> </td> ! <td valign="top" align="right"> ! <xsl:apply-templates select="duration" /> ! </td> </tr> </xsl:template> <xsl:template match="task"> ! <li><xsl:value-of select="@name" /> - <xsl:apply-templates select="duration" /></li> ! </xsl:template> ! ! <xsl:template match="duration"> ! <xsl:variable name="hours" select="floor(node() div 3600000)" /> ! <xsl:variable name="minutes" select="floor((node() mod 3600000) div 60000)" /> ! <xsl:variable name="seconds" select="(node() mod 60000) div 1000" /> ! <xsl:if test="$hours > 0"><xsl:value-of select="$hours" />:</xsl:if> ! <xsl:value-of select="format-number($minutes,'00')" />:<xsl:value-of select="format-number($seconds,'00.00')"/> </xsl:template> </xsl:stylesheet> \ No newline at end of file |