- Timestamp:
- 06/28/18 11:13:37 (7 years ago)
- Location:
- branches/2522_RefactorPluginInfrastructure
- Files:
-
- 3 deleted
- 8 edited
- 4 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/2522_RefactorPluginInfrastructure
- Property svn:ignore
-
old new 24 24 protoc.exe 25 25 obj 26 .vs
-
- Property svn:mergeinfo changed
- Property svn:ignore
-
branches/2522_RefactorPluginInfrastructure/HeuristicLab.DataPreprocessing
-
Property
svn:mergeinfo
set to
(toggle deleted branches)
/stable/HeuristicLab.DataPreprocessing merged eligible /branches/1721-RandomForestPersistence/HeuristicLab.DataPreprocessing 10321-10322 /branches/Algorithms.GradientDescent/HeuristicLab.DataPreprocessing 5516-5520 /branches/Async/HeuristicLab.DataPreprocessing 13329-15286 /branches/Benchmarking/sources/HeuristicLab.DataPreprocessing 6917-7005 /branches/CloningRefactoring/HeuristicLab.DataPreprocessing 4656-4721 /branches/CodeEditor/HeuristicLab.DataPreprocessing 11700-11806 /branches/DataAnalysis Refactoring/HeuristicLab.DataPreprocessing 5471-5808 /branches/DataAnalysis SolutionEnsembles/HeuristicLab.DataPreprocessing 5815-6180 /branches/DataAnalysis/HeuristicLab.DataPreprocessing 4458-4459,4462,4464 /branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing 15269-15489 /branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing 14445-15109 /branches/DataPreprocessing/HeuristicLab.DataPreprocessing 10085-11101 /branches/GP.Grammar.Editor/HeuristicLab.DataPreprocessing 6284-6795 /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.DataPreprocessing 5060 /branches/HLScript/HeuristicLab.DataPreprocessing 10331-10358 /branches/HeuristicLab.DatasetRefactor/sources/HeuristicLab.DataPreprocessing 11570-12508 /branches/HeuristicLab.Problems.DataAnalysis.Trading/HeuristicLab.DataPreprocessing 6123-9799 /branches/HeuristicLab.Problems.Orienteering/HeuristicLab.DataPreprocessing 11130-12721 /branches/HiveStatistics/sources/HeuristicLab.DataPreprocessing 12440-12877 /branches/LogResidualEvaluator/HeuristicLab.DataPreprocessing 10202-10483 /branches/NET40/sources/HeuristicLab.DataPreprocessing 5138-5162 /branches/NSGA-II Changes/HeuristicLab.DataPreprocessing 12033-12122 /branches/ParallelEngine/HeuristicLab.DataPreprocessing 5175-5192 /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.DataPreprocessing 7568-7810 /branches/QAPAlgorithms/HeuristicLab.DataPreprocessing 6350-6627 /branches/Restructure trunk solution/HeuristicLab.DataPreprocessing 6828 /branches/RuntimeOptimizer/HeuristicLab.DataPreprocessing 8943-9078 /branches/ScatterSearch (trunk integration)/HeuristicLab.DataPreprocessing 7787-8333 /branches/SlaveShutdown/HeuristicLab.DataPreprocessing 8944-8956 /branches/SpectralKernelForGaussianProcesses/HeuristicLab.DataPreprocessing 10204-10479 /branches/SuccessProgressAnalysis/HeuristicLab.DataPreprocessing 5370-5682 /branches/Trunk/HeuristicLab.DataPreprocessing 6829-6865 /branches/UnloadJobs/HeuristicLab.DataPreprocessing 9168-9215 /branches/VNS/HeuristicLab.DataPreprocessing 5594-5752 /branches/crossvalidation-2434/HeuristicLab.DataPreprocessing 12948-12950 /branches/histogram/HeuristicLab.DataPreprocessing 5959-6341 /branches/symbreg-factors-2650/HeuristicLab.DataPreprocessing 14232-14825 /trunk/sources/HeuristicLab.DataPreprocessing 13402-15674
-
Property
svn:mergeinfo
set to
(toggle deleted branches)
-
branches/2522_RefactorPluginInfrastructure/HeuristicLab.DataPreprocessing/3.4
- Property svn:mergeinfo changed
-
branches/2522_RefactorPluginInfrastructure/HeuristicLab.DataPreprocessing/3.4/HeuristicLab.DataPreprocessing-3.4.csproj
r12682 r15973 18 18 <DebugType>full</DebugType> 19 19 <Optimize>false</Optimize> 20 <OutputPath> ..\..\bin\</OutputPath>20 <OutputPath>$(SolutionDir)\bin\</OutputPath> 21 21 <DefineConstants>DEBUG;TRACE</DefineConstants> 22 22 <ErrorReport>prompt</ErrorReport> … … 28 28 <DebugType>pdbonly</DebugType> 29 29 <Optimize>true</Optimize> 30 <OutputPath> ..\..\bin\</OutputPath>30 <OutputPath>$(SolutionDir)\bin\</OutputPath> 31 31 <DefineConstants>TRACE</DefineConstants> 32 32 <ErrorReport>prompt</ErrorReport> … … 36 36 <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> 37 37 <PlatformTarget>x64</PlatformTarget> 38 <OutputPath> ..\..\bin\</OutputPath>38 <OutputPath>$(SolutionDir)\bin\</OutputPath> 39 39 <DefineConstants>DEBUG;TRACE</DefineConstants> 40 40 <Prefer32Bit>false</Prefer32Bit> … … 42 42 <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> 43 43 <PlatformTarget>x64</PlatformTarget> 44 <OutputPath> ..\..\bin\</OutputPath>44 <OutputPath>$(SolutionDir)\bin\</OutputPath> 45 45 <Optimize>true</Optimize> 46 46 <Prefer32Bit>false</Prefer32Bit> … … 48 48 <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> 49 49 <DebugSymbols>true</DebugSymbols> 50 <OutputPath> ..\..\bin\</OutputPath>50 <OutputPath>$(SolutionDir)\bin\</OutputPath> 51 51 <DefineConstants>DEBUG;TRACE</DefineConstants> 52 52 <DebugType>full</DebugType> … … 57 57 </PropertyGroup> 58 58 <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'"> 59 <OutputPath> ..\..\bin\</OutputPath>59 <OutputPath>$(SolutionDir)\bin\</OutputPath> 60 60 <DefineConstants>TRACE</DefineConstants> 61 61 <Optimize>true</Optimize> … … 78 78 </ItemGroup> 79 79 <ItemGroup> 80 <Compile Include="Implementations\ScatterPlotContent.cs" /> 81 <Compile Include="Implementations\DataCompletenessChartContent.cs" /> 82 <Compile Include="Implementations\FilteredPreprocessingData.cs" /> 83 <Compile Include="Implementations\ManipulationContent.cs" /> 84 <Compile Include="Implementations\PreprocessingChartContent.cs" /> 85 <Compile Include="Implementations\PreprocessingData.cs" /> 86 <Compile Include="Implementations\PreprocessingDataTable.cs" /> 87 <Compile Include="Interfaces\IViewChartShortcut.cs" /> 88 <Compile Include="Interfaces\IFilteredPreprocessingData.cs" /> 89 <Compile Include="Implementations\CorrelationMatrixContent.cs" /> 80 <Compile Include="Content\MultiScatterPlotContent.cs" /> 81 <Compile Include="Content\PreprocessingContent.cs" /> 82 <Compile Include="Content\SingleScatterPlotContent.cs" /> 83 <Compile Include="Content\ScatterPlotContent.cs" /> 84 <Compile Include="Content\DataCompletenessChartContent.cs" /> 85 <Compile Include="Data\FilteredPreprocessingData.cs" /> 86 <Compile Include="Content\ManipulationContent.cs" /> 87 <Compile Include="Content\PreprocessingChartContent.cs" /> 88 <Compile Include="Data\PreprocessingData.cs" /> 89 <Compile Include="Data\IFilteredPreprocessingData.cs" /> 90 <Compile Include="Content\CorrelationMatrixContent.cs" /> 90 91 <Compile Include="PreprocessingTransformator.cs" /> 91 <Compile Include="Utils\DataPreprocessingChangedEvent.cs" /> 92 <Compile Include="Implementations\Filter\ComparisonFilter.cs" /> 93 <Compile Include="Implementations\Filter\IFilter.cs" /> 94 <Compile Include="Implementations\ManipulationLogic.cs" /> 95 <Compile Include="Interfaces\IPreprocessingData.cs" /> 96 <Compile Include="Interfaces\IDataGridLogic.cs" /> 97 <Compile Include="Implementations\FilterContent.cs" /> 98 <Compile Include="Implementations\FilterLogic.cs" /> 99 <Compile Include="Implementations\HistogramContent.cs" /> 100 <Compile Include="Implementations\LineChartContent.cs" /> 101 <Compile Include="Implementations\StatisticsContent.cs" /> 102 <Compile Include="Implementations\TransformationContent.cs" /> 103 <Compile Include="Interfaces\IFilterLogic.cs" /> 104 <Compile Include="Interfaces\IManipulationLogic.cs" /> 105 <Compile Include="Interfaces\ITransformationLogic.cs" /> 106 <Compile Include="Interfaces\IViewShortcut.cs" /> 92 <Compile Include="Data\DataPreprocessingChangedEvent.cs" /> 93 <Compile Include="Filter\ComparisonFilter.cs" /> 94 <Compile Include="Filter\IFilter.cs" /> 95 <Compile Include="Data\IPreprocessingData.cs" /> 96 <Compile Include="Content\FilterContent.cs" /> 97 <Compile Include="Content\HistogramContent.cs" /> 98 <Compile Include="Content\LineChartContent.cs" /> 99 <Compile Include="Content\StatisticsContent.cs" /> 100 <Compile Include="Content\TransformationContent.cs" /> 101 <Compile Include="Content\IViewShortcut.cs" /> 107 102 <Compile Include="ProblemDataCreator.cs" /> 108 103 <None Include="Plugin.cs.frame" /> 109 <Compile Include="Implementations\DataGridContent.cs" /> 110 <Compile Include="Implementations\PreprocessingContext.cs" /> 111 <Compile Include="Implementations\TransactionalPreprocessingData.cs" /> 112 <Compile Include="Implementations\SearchLogic.cs" /> 113 <Compile Include="Implementations\StatisticsLogic.cs" /> 114 <Compile Include="Interfaces\IDataGridContent.cs" /> 115 <Compile Include="Interfaces\IPreprocessingContext.cs" /> 116 <Compile Include="Interfaces\ISearchLogic.cs" /> 117 <Compile Include="Interfaces\IStatisticsLogic.cs" /> 118 <Compile Include="Interfaces\ITransactionalPreprocessingData.cs" /> 104 <Compile Include="Content\DataGridContent.cs" /> 105 <Compile Include="PreprocessingContext.cs" /> 119 106 <Compile Include="Plugin.cs" /> 120 107 <Compile Include="Properties\AssemblyInfo.cs" /> … … 126 113 <ItemGroup> 127 114 <ProjectReference Include="..\..\HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj"> 128 <Project>{887425 b4-4348-49ed-a457-b7d2c26ddbf9}</Project>115 <Project>{887425B4-4348-49ED-A457-B7D2C26DDBF9}</Project> 129 116 <Name>HeuristicLab.Analysis-3.3</Name> 130 117 <Private>False</Private> 131 118 </ProjectReference> 132 119 <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj"> 133 <Project>{958 b43bc-cc5c-4fa2-8628-2b3b01d890b6}</Project>120 <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project> 134 121 <Name>HeuristicLab.Collections-3.3</Name> 135 122 <Private>False</Private> 136 123 </ProjectReference> 137 124 <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj"> 138 <Project>{0 e27a536-1c4a-4624-a65e-dc4f4f23e3e1}</Project>125 <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project> 139 126 <Name>HeuristicLab.Common.Resources-3.3</Name> 140 127 <Private>False</Private> 141 128 </ProjectReference> 142 129 <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj"> 143 <Project>{ a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c}</Project>130 <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project> 144 131 <Name>HeuristicLab.Common-3.3</Name> 145 132 <Private>False</Private> 146 133 </ProjectReference> 147 134 <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj"> 148 <Project>{ c36bd924-a541-4a00-afa8-41701378ddc5}</Project>135 <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project> 149 136 <Name>HeuristicLab.Core-3.3</Name> 150 137 <Private>False</Private> 151 138 </ProjectReference> 152 139 <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj"> 153 <Project>{ bbab9df5-5ef3-4ba8-ade9-b36e82114937}</Project>140 <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project> 154 141 <Name>HeuristicLab.Data-3.3</Name> 155 142 <Private>False</Private> 156 143 </ProjectReference> 157 144 <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj"> 158 <Project>{14 ab8d24-25bc-400c-a846-4627aa945192}</Project>145 <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project> 159 146 <Name>HeuristicLab.Optimization-3.3</Name> 160 147 <Private>False</Private> 161 148 </ProjectReference> 149 <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj"> 150 <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project> 151 <Name>HeuristicLab.Persistence-3.3</Name> 152 <Private>False</Private> 153 </ProjectReference> 162 154 <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj"> 163 <Project>{94186 a6a-5176-4402-ae83-886557b53cca}</Project>155 <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project> 164 156 <Name>HeuristicLab.PluginInfrastructure-3.3</Name> 165 157 <Private>False</Private> 166 158 </ProjectReference> 167 159 <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj"> 168 <Project>{ df87c13e-a889-46ff-8153-66dcaa8c5674}</Project>160 <Project>{DF87C13E-A889-46FF-8153-66DCAA8C5674}</Project> 169 161 <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name> 162 <Private>False</Private> 163 </ProjectReference> 164 <ProjectReference Include="..\..\HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj"> 165 <Project>{F4539FB6-4708-40C9-BE64-0A1390AEA197}</Project> 166 <Name>HeuristicLab.Random-3.3</Name> 167 <Private>False</Private> 168 </ProjectReference> 169 <ProjectReference Include="..\..\HeuristicLab.Visualization.ChartControlsExtensions\3.3\HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj"> 170 <Project>{315BDA09-3F4F-49B3-9790-B37CFC1C5750}</Project> 171 <Name>HeuristicLab.Visualization.ChartControlsExtensions-3.3</Name> 170 172 <Private>False</Private> 171 173 </ProjectReference> -
branches/2522_RefactorPluginInfrastructure/HeuristicLab.DataPreprocessing/3.4/Plugin.cs.frame
r13321 r15973 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 5Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 26 26 /// Plugin class for HeuristicLab.Data plugin. 27 27 /// </summary> 28 [Plugin("HeuristicLab.DataPreprocessing", "3.4. 3.$WCREV$")]28 [Plugin("HeuristicLab.DataPreprocessing", "3.4.5.$WCREV$")] 29 29 [PluginFile("HeuristicLab.DataPreprocessing-3.4.dll", PluginFileType.Assembly)] 30 30 [PluginDependency("HeuristicLab.Analysis", "3.3")] … … 35 35 [PluginDependency("HeuristicLab.Data","3.3")] 36 36 [PluginDependency("HeuristicLab.Optimization", "3.3")] 37 [PluginDependency("HeuristicLab.Persistence", "3.3")] 37 38 [PluginDependency("HeuristicLab.Problems.DataAnalysis","3.4")] 39 [PluginDependency("HeuristicLab.Random", "3.3")] 40 [PluginDependency("HeuristicLab.Visualization.ChartControlsExtensions", "3.3")] 38 41 public class HeuristicLabDataPreprocessingPlugin : PluginBase { 39 42 } -
branches/2522_RefactorPluginInfrastructure/HeuristicLab.DataPreprocessing/3.4/PreprocessingTransformator.cs
r12012 r15973 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 5Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 29 29 namespace HeuristicLab.DataPreprocessing { 30 30 public class PreprocessingTransformator { 31 private readonly I TransactionalPreprocessingData preprocessingData;31 private readonly IPreprocessingData preprocessingData; 32 32 33 33 private readonly IDictionary<string, IList<double>> originalColumns; … … 36 36 37 37 public PreprocessingTransformator(IPreprocessingData preprocessingData) { 38 this.preprocessingData = (ITransactionalPreprocessingData)preprocessingData;38 this.preprocessingData = preprocessingData; 39 39 originalColumns = new Dictionary<string, IList<double>>(); 40 40 renamedColumns = new Dictionary<string, string>(); … … 68 68 preprocessingData.Undo(); 69 69 } 70 } 71 catch (Exception e) { 70 } catch (Exception e) { 72 71 preprocessingData.Undo(); 73 72 if (string.IsNullOrEmpty(errorMsg)) errorMsg = e.Message; 74 } 75 finally { 73 } finally { 76 74 preprocessingData.EndTransaction(); 77 75 } … … 113 111 // don't apply when the check fails 114 112 if (success) 115 return transformation. Apply(data);113 return transformation.ConfigureAndApply(data); 116 114 else 117 115 return data; -
branches/2522_RefactorPluginInfrastructure/HeuristicLab.DataPreprocessing/3.4/ProblemDataCreator.cs
r13252 r15973 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 5Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 28 28 namespace HeuristicLab.DataPreprocessing { 29 29 public class ProblemDataCreator { 30 31 private readonly IPreprocessingContext context; 30 private readonly PreprocessingContext context; 32 31 33 32 private Dataset ExportedDataset { 34 get { 35 return context.Data.ExportToDataset(); 36 } 33 get { return context.Data.ExportToDataset(); } 37 34 } 38 35 39 private IList<ITransformation> Transformations { get { return context.Data.Transformations; } } 36 private IList<ITransformation> Transformations { 37 get { return context.Data.Transformations; } 38 } 40 39 41 public ProblemDataCreator( IPreprocessingContext context) {40 public ProblemDataCreator(PreprocessingContext context) { 42 41 this.context = context; 43 42 } 44 43 45 public IDataAnalysisProblemData CreateProblemData( ) {44 public IDataAnalysisProblemData CreateProblemData(IDataAnalysisProblemData oldProblemData) { 46 45 if (context.Data.Rows == 0 || context.Data.Columns == 0) return null; 47 46 48 var oldProblemData = context.ProblemData;49 47 IDataAnalysisProblemData problemData; 50 48 51 if (oldProblemData is RegressionProblemData) { 49 if (oldProblemData is TimeSeriesPrognosisProblemData) { 50 problemData = CreateTimeSeriesPrognosisData((TimeSeriesPrognosisProblemData)oldProblemData); 51 } else if (oldProblemData is RegressionProblemData) { 52 52 problemData = CreateRegressionData((RegressionProblemData)oldProblemData); 53 53 } else if (oldProblemData is ClassificationProblemData) { … … 70 70 } 71 71 72 private IDataAnalysisProblemData CreateTimeSeriesPrognosisData(TimeSeriesPrognosisProblemData oldProblemData) { 73 var targetVariable = oldProblemData.TargetVariable; 74 if (!context.Data.VariableNames.Contains(targetVariable)) 75 targetVariable = context.Data.VariableNames.First(); 76 var inputVariables = GetDoubleInputVariables(targetVariable); 77 var newProblemData = new TimeSeriesPrognosisProblemData(ExportedDataset, inputVariables, targetVariable, Transformations) { 78 TrainingHorizon = oldProblemData.TrainingHorizon, 79 TestHorizon = oldProblemData.TestHorizon 80 }; 81 return newProblemData; 82 } 83 72 84 private IDataAnalysisProblemData CreateRegressionData(RegressionProblemData oldProblemData) { 73 85 var targetVariable = oldProblemData.TargetVariable; … … 84 96 targetVariable = context.Data.VariableNames.First(); 85 97 var inputVariables = GetDoubleInputVariables(targetVariable); 86 var newProblemData = new ClassificationProblemData(ExportedDataset, inputVariables, targetVariable, Transformations); 87 newProblemData.PositiveClass = oldProblemData.PositiveClass; 98 var newProblemData = new ClassificationProblemData(ExportedDataset, inputVariables, targetVariable, Transformations) { 99 PositiveClass = oldProblemData.PositiveClass 100 }; 88 101 return newProblemData; 89 102 } -
branches/2522_RefactorPluginInfrastructure/HeuristicLab.DataPreprocessing/3.4/Properties/AssemblyInfo.cs.frame
r13321 r15973 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 5Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 32 32 [assembly: AssemblyCompany("HEAL")] 33 33 [assembly: AssemblyProduct("HeuristicLab")] 34 [assembly: AssemblyCopyright("(c) 2002-201 5HEAL")]34 [assembly: AssemblyCopyright("(c) 2002-2018 HEAL")] 35 35 [assembly: AssemblyTrademark("")] 36 36 [assembly: AssemblyCulture("")] … … 54 54 // by using the '*' as shown below: 55 55 [assembly: AssemblyVersion("3.4.0.0")] 56 [assembly: AssemblyFileVersion("3.4. 3.$WCREV$")]56 [assembly: AssemblyFileVersion("3.4.5.$WCREV$")]
Note: See TracChangeset
for help on using the changeset viewer.