Browse Source

added VersioningServices

pull/15/head
Siegfried Pammer 16 years ago
parent
commit
1396da7fc6
  1. 10
      src/AddIns/VersionControl/SubversionAddIn/ICSharpCode.Svn.addin
  2. 39
      src/AddIns/VersionControl/SubversionAddIn/Src/SvnDiffProvider.cs
  3. 1
      src/AddIns/VersionControl/SubversionAddIn/SubversionAddIn.csproj
  4. 1
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  5. 51
      src/Main/Base/Project/Src/Editor/IDocumentBaseVersionProvider.cs

10
src/AddIns/VersionControl/SubversionAddIn/ICSharpCode.Svn.addin

@ -23,6 +23,16 @@
class = "ICSharpCode.Svn.Commands.RegisterEventsCommand"/> class = "ICSharpCode.Svn.Commands.RegisterEventsCommand"/>
</Path> </Path>
<Path name="/Workspace/DiffProviders">
<Class id="svn"
class="ICSharpCode.Svn.SvnDiffProvider" />
</Path>
<Path name="/Workspace/BaseVersionProviders">
<Class id="svn"
class="ICSharpCode.Svn.SvnBaseVersionProvider" />
</Path>
<Path name = "/SharpDevelop/Workbench/DisplayBindings"> <Path name = "/SharpDevelop/Workbench/DisplayBindings">
<DisplayBinding id = "SubversionHistoryView" <DisplayBinding id = "SubversionHistoryView"
type = "Secondary" type = "Secondary"

39
src/AddIns/VersionControl/SubversionAddIn/Src/SvnDiffProvider.cs

@ -0,0 +1,39 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.IO;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
using SharpSvn.Diff;
namespace ICSharpCode.Svn
{
/// <summary>
/// Description of SvnDiffProvider.
/// </summary>
public class SvnDiffProvider : IDiffProvider
{
public Stream GetDiff(string fileName, ITextBuffer modifiedBuffer)
{
SvnFileDiff diff;
string tempFile = Path.GetTempFileName();
MemoryStream stream = new MemoryStream();
File.WriteAllText(tempFile, modifiedBuffer.Text);
SvnFileDiff.TryCreate(fileName, tempFile, new SvnFileDiffArgs(), out diff);
diff.WriteDifferences(stream, new SvnDiffWriteDifferencesArgs());
File.Delete(tempFile);
return stream;
}
}
public class SvnBaseVersionProvider : IDocumentBaseVersionProvider
{
public Stream OpenBaseVersion(string fileName)
{
throw new NotImplementedException();
}
}
}

1
src/AddIns/VersionControl/SubversionAddIn/SubversionAddIn.csproj

@ -83,6 +83,7 @@
<Compile Include="Src\Commands\CheckoutCommands.cs" /> <Compile Include="Src\Commands\CheckoutCommands.cs" />
<Compile Include="Src\SubversionStateCondition.cs" /> <Compile Include="Src\SubversionStateCondition.cs" />
<Compile Include="Src\SvnClientWrapper.cs" /> <Compile Include="Src\SvnClientWrapper.cs" />
<Compile Include="Src\SvnDiffProvider.cs" />
<Compile Include="Src\SvnMessageView.cs" /> <Compile Include="Src\SvnMessageView.cs" />
<EmbeddedResource Include="Src\Gui\HistoryViewDisplayBinding\InfoPanel.resx"> <EmbeddedResource Include="Src\Gui\HistoryViewDisplayBinding\InfoPanel.resx">
<DependentUpon>InfoPanel.cs</DependentUpon> <DependentUpon>InfoPanel.cs</DependentUpon>

1
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -107,6 +107,7 @@
<Compile Include="Src\Editor\Commands\FindReferences.cs" /> <Compile Include="Src\Editor\Commands\FindReferences.cs" />
<Compile Include="Src\Editor\Commands\GotoLineNumber.cs" /> <Compile Include="Src\Editor\Commands\GotoLineNumber.cs" />
<Compile Include="Src\Editor\Commands\SymbolUnderCaretMenuCommand.cs" /> <Compile Include="Src\Editor\Commands\SymbolUnderCaretMenuCommand.cs" />
<Compile Include="Src\Editor\IDocumentBaseVersionProvider.cs" />
<Compile Include="Src\Editor\IEditorControlService.cs" /> <Compile Include="Src\Editor\IEditorControlService.cs" />
<Compile Include="Src\Editor\IEditorUIService.cs" /> <Compile Include="Src\Editor\IEditorUIService.cs" />
<Compile Include="Src\Editor\CodeCompletion\AttributesItemProvider.cs" /> <Compile Include="Src\Editor\CodeCompletion\AttributesItemProvider.cs" />

51
src/Main/Base/Project/Src/Editor/IDocumentBaseVersionProvider.cs

@ -0,0 +1,51 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.IO;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Editor
{
public interface IDocumentBaseVersionProvider
{
/// <summary>
/// Provides the BASE-Version for a file. This can be either the file saved
/// to disk or a base version provided by any VCS.
/// </summary>
Stream OpenBaseVersion(string fileName);
}
public interface IDiffProvider
{
Stream GetDiff(string fileName, ITextBuffer modifiedBuffer);
}
public class VersioningServices
{
public static readonly VersioningServices Instance = new VersioningServices();
List<IDocumentBaseVersionProvider> baseVersionProviders;
public List<IDocumentBaseVersionProvider> BaseVersionProviders {
get {
if (baseVersionProviders == null)
baseVersionProviders = AddInTree.BuildItems<IDocumentBaseVersionProvider>("/Workspace/BaseVersionProviders", this, false);
return baseVersionProviders;
}
}
List<IDiffProvider> diffProviders;
public List<IDiffProvider> DiffProviders {
get {
if (diffProviders == null)
diffProviders = AddInTree.BuildItems<IDiffProvider>("/Workspace/DiffProviders", this, false);
return diffProviders;
}
}
}
}
Loading…
Cancel
Save