5 changed files with 102 additions and 0 deletions
@ -0,0 +1,39 @@
@@ -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(); |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,51 @@
@@ -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…
Reference in new issue